以下代碼可以正常工作:type alias []bytetype data struct { x alias}func main() { s2 := []byte("s2") s1 := &data{ x: s2, } var s4 alias = s2 fmt.Println(s1,s2, s4)}但以下內容無法編譯type alias stringtype 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)}}唯一的區別是類型別名從字節切片變為字符串。這些類型之間有什么區別,一種是自動轉換的,另一種不是?
為什么 Golang 類型別名有時兼容有時不兼容?
慕田峪4524236
2022-07-11 14:49:09