Ocaml缓冲区修改具体位置

时间:2017-01-02 18:11:57

标签: ocaml string-concatenation

我目前在我正在开发的程序中构建/连接相当大的字符串。为了给出一些上下文,完整的字符串具有终端的大小。自从我开发终端应用程序以来,这种情况发生了很多。我发现了数据结构Buffer,这似乎是将字符串与标准库连接起来的最高效的方法。

如果我经常需要在特定位置更新缓冲区的某些部分,这是正确的选择吗?让我们说20到50岁的角色? 在这种情况下有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

@coredump和@kne给出了很好的答案。我可能只是在今天的世界中添加一个字节是一个字符的不良表示。所以你可以考虑使用数组或bigarray。

答案 1 :(得分:3)

AFAICS,除了添加到结尾之外,没有办法改变Buffer.t的内容。也许你应该看看模块BytesBytes.t在任何地方都是可变的,只有长度不能改变。但似乎你需要的长度是固定的:终端的大小(如果终端窗口调整大小,你可以用新的替换Bytes.t)。