在尝试编译以下表达式时:
String.blit (String.make tfs.len ' ') 0 tfs.txt 0 tfs.len;
Run Code Online (Sandbox Code Playgroud)
编译器抱怨以下错误:
Error: This expression has type string but an expression was expected of type bytes
and the variable 'tfs.txt' (of type string) is pointed at.
Run Code Online (Sandbox Code Playgroud)
正如某些论坛中所建议的那样,我尝试将变量OCAMLPARAM设置为值:safe_string=0,_
但没有结果
我在 Ubuntu 20.01.01 LTS 下使用 OCaml 4.11.1
从 OCaml 4.10.0 开始,不可变string和可变之间的区别bytes是配置时默认值,不能逐个程序更改。
如果您正在尝试编译一些旧的遗留代码,使用没有这种区别配置的 OCaml 版本可能是有意义的。
否则,bytes当需要就地更改字符串时(从您的代码片段中不清楚),调整您的代码以使用将更具前瞻性。