【发布时间】:2014-07-08 22:09:39
【问题描述】:
我正在阅读以下关于 go (golang) 字符串的 conversation。 go 中的字符串只是指向(只读)数组和长度的指针。因此,当您将它们传递给函数时,指针作为值而不是整个字符串传递。因此,我想到,如果这是真的,那么为什么你甚至可以定义为一个函数,其签名以*string 作为参数?如果字符串已经在加号,则数据是不可变/只读的,因此无论如何您都无法更改它。如果 go 在内部已经这样做了,那么允许传递指向字符串的指针有什么意义?
【问题讨论】:
-
一种语言无法避免开发人员可能产生的所有误解
-
禁止这样做没有任何好处。