我正在阅读以下有关go(golang)字符串的对话。go中的字符串只是指向(只读)数组和长度的指针。因此,当您将它们传递给函数时,指针将作为值而不是整个字符串传递。因此,对我来说,如果是这样,那为什么还要允许您定义为带有签名*string
作为参数的函数?如果字符串已经在执行加号操作,则数据是不可变的/只读的,因此无论如何您都无法更改它。无论如何,如果允许go将指针传递给字符串有什么意义呢?
您将指针传递给持有该字符串的“对象”,以便可以为其分配其他字符串。
示例:http://play.golang.org/p/Gsybc7Me-5
func ps(s *string) {
*s = "hoo"
}
func main() {
s := "boo"
ps(&s)
fmt.Println(s)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句