一尘不染

Go语言是否使用字符串写时复制

go

Go语言是否像Java一样对字符串使用写时复制?也就是说,如果我按值将字符串传递给方法并且从未更改,则它将分配内存并复制字符串(这将节省时间),或者仅引用单个副本。


阅读 352

收藏
2020-07-02

共1个答案

一尘不染

它不是写时复制的,因为字符串是不可变的。但是共享一个字符串也不会复制基础内存区域。在Go中,字符串表示为(长度,数据)对。如果传递字符串,Go将复制长度和指针,但不复制所指向的数据。

有关更多信息,请参阅golang-nuts上的最新线程

2020-07-02