0

我习惯使用print_intOCaml 中的标准函数,但是当我打开BaseJane Street 的库时,按照 Real World OCaml 中的建议,我收到了弃用警告:

utop # print_int;;
- : int -> unit = <fun>
utop # open Base;;
utop # print_int;;
Line 1, characters 0-9:
Alert deprecated: Base.print_int
- : int -> unit = <fun>

更糟糕的是,当我按照那本书的建议使用 构建它时dune,警告变成了错误。我该怎么办 ?替换print_intprintf "%i"? 或与Caml.print_int?两者似乎都有效,但看起来不必要的复杂。还有什么?谢谢你。

4

1 回答 1

1

这是在这里回答:https ://ocaml.janestreet.com/ocaml-core/v0.13/doc/base/index.html#using-the-ocaml-standard-library-with-base

Base 旨在作为完整的 stdlib 替代品。结果,在一个开放的 Base 之后,所有来自 OCaml 标准库的模块、值、类型等通常在默认环境中都被弃用。

为了访问这些值,必须使用Caml库,该库通过顶层名称重新导出它们CamlCaml.String, Caml.print_string, ...

于 2021-09-13T21:51:15.147 回答