以下代码可以正常工作:
type alias []byte
type data struct {
x alias
}
func main() {
s2 := []byte("s2")
s1 := &data{
x: s2,
}
var s4 alias = s2
fmt.Println(s1,s2, s4)
}
但以下内容无法编译
type alias string
type data struct {
x alias
}
func main() {
s2 := string("s2")
s1 := &data{
x: s2, // needs explicit alias(s2)
}
var s4 alias = s2 // needs explicit alias(s2)
fmt.Println(s1,s2, s4)
}
}
唯一的区别是类型别名从字节切片变为字符串。
这些类型之间有什么区别,一种是自动转换的,另一种不是?
潇湘沐
相关分类