【发布时间】:2015-04-01 20:15:51
【问题描述】:
据我了解,Nim 中的字符串基本上是可变的字节序列,它们在赋值时被复制。
鉴于此,我假设 sizeof 会告诉我(如 len)字节数,但它总是在我的 64 位机器上给出 8,所以它似乎持有一个指针。
鉴于此,我有以下问题...
复制作业的动机是什么?是因为它们是可变的吗?
是否有过分配时不复制的情况? (我假设非
var函数参数不会复制。还有其他吗?)它们是否经过优化,只有在/当它们发生突变时才真正被复制?
字符串和序列之间是否有任何显着差异,或者上述问题的答案是否可以平等地应用于所有序列?
一般还有什么值得注意的吗?
谢谢!
【问题讨论】:
-
为了完整起见,nim 字符串定义存在于on github,这可能有助于解释它为什么报告它所报告的内容。
-
@Mike'Pomax'Kamermans:谢谢你的链接,但我不知道
string* {.magic: String.}想告诉我什么。 ;-) -
是的,我自己也不太确定,只是认为在这个问题中提供的信息可能是一个很好的信息,可以帮助人们比我们更善于发现最新情况=)
-
啊,我明白你的意思了。 :-)