有效连接字符串数组

Gre*_*bet 3 arrays ocaml string-concatenation

OCaml标准库提供了函数String.concat

https://caml.inria.fr/pub/docs/manual-ocaml/libref/String.html

val concat : string -> string list -> string

String.concat sep sl连接字符串列表sl,在每个字符串之间插入分隔符字符串 sep

据推测,该函数的存在是为了更容易地将许多字符串在时间/空间上与字符串长度呈线性连接在一起。

数组是否存在类似的功能?特别是,有没有一种方法可以有效地将字符串数组连接在一起,而无需 1) 编写 C 扩展并构建棘手的中间结构或 2) 有效调用String.concat "" (Array.to_list arr)).

Chr*_*riS 5

最好的办法是自己写一个concat模仿的函数String.concat。如果您想要更短的内容,请使用缓冲区来累积结果 ( Array.iter (Buffer.add_string b) arr) \xe2\x80\x94 不要重复连接,这会生成太多分配。

\n