为了账号安全,请及时绑定邮箱和手机立即绑定

golang中括号和花括号的区别

golang中括号和花括号的区别

Go
尚方宝剑之说 2023-05-04 17:12:42
a := []byte("H") //works a := []byte{"H"} //does not compile上面使用的 () 和 {} 之间的概念区别是什么?
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

原因是类型转换和切片字面量的区别。

_ = []byte("Hi!")         // Converts a string literal to a []byte.

_ = []byte{'H', 'i', '!'} // Initializes a []byte literal

您的第二个示例[]byte{"H"}无法编译,因为"H"它是一个字符串文字,用于代替符文文字,它类似于尝试将字符串分配给字节类型的变量:


var y byte = 'H' // OK

var x byte = "H" // ERROR: cannot use "H" (type string) as type byte in assignment


查看完整回答
反对 回复 2023-05-04
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

在第一个中,a := []byte("H")您将字符串类型转换"H"为字节数组。


在第二个中,a := []byte{"H"}您定义了一个字节数组并将“H”分配为它的第一个值,这是无效的。


您可以将第二个与定义字符串数组进行比较:


s := []string{"hello","world",".."} // works

f := []string{1,2,4} // fails because the datatype is wrong


查看完整回答
反对 回复 2023-05-04
  • 2 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信