gpt4 book ai didi

string - 将指针传递给 go (golang) 中的字符串有什么意义?

转载 作者:IT王子 更新时间:2023-10-29 01:16:06 25 4
gpt4 key购买 nike

我正在阅读以下内容 conversation关于 go (golang) 字符串。 go 中的字符串只是一个指向(只读)数组的指针和一个长度。因此,当您将它们传递给函数时,指针将作为值而不是整个字符串传递。因此,我想到,如果那是真的,那为什么你甚至允许定义一个带有以 *string 作为参数的签名的函数?如果字符串已经在做加号,则数据是不可变/只读的,因此无论如何都无法更改它。如果 go 已经在内部这样做,那么允许 go 传递指向字符串的指针有什么意义呢?

最佳答案

您将指针传递给保存字符串的“对象”,以便您可以为其分配不同的字符串。

示例:http://play.golang.org/p/Gsybc7Me-5

func ps(s *string) {
*s = "hoo"
}
func main() {
s := "boo"
ps(&s)
fmt.Println(s)
}

关于string - 将指针传递给 go (golang) 中的字符串有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24642311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com