登录
首页 >  Golang >  Go问答

golang中括号和大括号的区别

来源:stackoverflow

时间:2024-04-12 13:24:34 329浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《golang中括号和大括号的区别》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

a := []byte("H") //works
a := []byte{"H"} //does not compile

上面使用的 () 和 {} 之间的概念区别是什么?


解决方案


原因是 type conversionsslice literals 之间的差异。

_ = []byte("hi!")         // converts a string literal to a []byte.
_ = []byte{'h', 'i', '!'} // initializes a []byte literal

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

var y byte = 'h' // ok
var x byte = "h" // error: cannot use "h" (type string) as type byte in assignment

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

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

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

s := []string{"hello","world",".."} // works
f := []string{1,2,4} // fails because the datatype is wrong

好了,本文到此结束,带大家了解了《golang中括号和大括号的区别》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>