我有一个程序使用BytesOcaml标准库中的Core_kernel.Std模块,并打开文件顶部的模块
open Core_kernel.Std
...
let let buf = Bytes.make bom_len '\x00' in
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是最新版本的Core_kernel引入了一个新的Bytes模块,该模块隐藏了标准库中的模块,导致Unbound value Bytes.make编译错误.
有没有办法解决这个命名问题,而没有摆脱open文件的顶部?如果我这样做,就需要改变很多东西.
您可以为Bytes模块提供替代名称:
module B = Bytes
open Core_kernel.Std
let buf = B.make 10 '\x00'
Run Code Online (Sandbox Code Playgroud)
然后做一个在你的代码搜索替换改变Bytes的B.
另一种解决方案是避免使用open,但我猜你的代码需要进行大量更改.