【发布时间】:2015-11-22 02:17:05
【问题描述】:
例子:
type MyString string
var s = "very long string"
var ms = MyString(s)
var s2 = string(s)
ms 或s2 是s 的完整副本(就像[]byte(s) 一样)?或者它们只是一个字符串结构副本(将真实值保存在指针中)?
如果我们将 this 传递给函数会怎样?例如:
func foo(s MyString){
...
}
foo(ms(s)) // do we copy s here?
【问题讨论】:
-
记住,Go 中的 everything 都是一个值,所有的赋值都是该值的副本。
foo(ms(s))确实复制了一份,但不是因为转换。
标签: string go type-conversion type-alias