a := []byte("H") //works
a := []byte{"H"} //does not compile
上面使用的 () 和 {} 之间的概念区别是什么?
尚方宝剑之说
浏览 137回答 2
2回答
守着一只汪
原因是类型转换和切片字面量的区别。_ = []byte("Hi!") // Converts a string literal to a []byte._ = []byte{'H', 'i', '!'} // Initializes a []byte literal您的第二个示例[]byte{"H"}无法编译,因为"H"它是一个字符串文字,用于代替符文文字,它类似于尝试将字符串分配给字节类型的变量:var y byte = 'H' // OKvar x byte = "H" // ERROR: cannot use "H" (type string) as type byte in assignment