相关疑难解决方法(0)

不可变的字符串和指针地址

在Go 规范中写道:

字符串是不可变的:一旦创建,就不可能改变字符串的内容.

我有以下代码:

str := "hello"
fmt.Printf("%p\n",&str) // 0x1040c128
fmt.Printf("%v\n",str) // hello
ptr := &str
*ptr = "world"
fmt.Printf("%p\n",&str) // 0x1040c128
fmt.Printf("%v\n",str) // world  
Run Code Online (Sandbox Code Playgroud)

&str原本预计地址会改变*ptr = "world".正如Java所发生的那样,我们重新分配字符串引用.

什么是"不变性"?

string immutability go

4
推荐指数
1
解决办法
433
查看次数

标签 统计

go ×1

immutability ×1

string ×1