我一直想知道为什么在 golang 中使用括号创建字节片段:
[]byte("foo")
Run Code Online (Sandbox Code Playgroud)
使用括号表示法创建字符串切片时:
[]string{"foo", "bar"}
Run Code Online (Sandbox Code Playgroud)
使用括号是否只是因为表达式需要单个值(例如 string "foo"),因此括号被用作“分组”语法?
注意:使用“组”或“分组”来定义这种行为对我来说很可能是不正确的,但我没有更好的词可以使用。
我这么认为是因为 golang 在分组意义上也使用括号来处理诸如类型断言i.(T)和指针取消引用之类的事情(*p).z。
你错了。
[]byte("any_string")实际上是从stringtype 到[]byte(byte 的切片类型) 的类型转换,其返回类型是[]byte.[]string{"string0", "string1", ...}实际上是一个sliceof strings "string0", "string1", ...