我最近在https://github.com/dbuenzli/astring上遇到了Ocaml的Astring模块。
该库的作者在自述文件中陈述了以下内容:
...fully exploits OCaml's newfound string immutability字符串的不变性给字符串库的实现带来了什么好处?我试着阅读了源码,但没有找到任何具体的优点。是否有性能上的好处?它允许更安全的模式吗?
发布于 2018-01-21 01:11:19
不变性的主要用途是您可以在不需要副本的情况下操作子字符串。
这就是为什么会有a separate module for substrings。如果字符串是可变的,那么整个模块就不会是好的。
发布于 2018-01-22 03:57:51
当你的函数返回一个字符串并且这个字符串已经存在的时候,你不需要为你的结果复制一个现有的字符串。
这里有几个简单的例子:
String.append s ""
String.append "" s
String.trim "bla"如果您的字符串是可变的,那么在这些情况下,您总是必须返回一个副本。
https://stackoverflow.com/questions/48356949
复制相似问题