大家好,关于去学习日常题(5)struct很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
package mainimport (‘fmt’)type s struct {name stringage int}type m struct {age intdict map[string]string}func main() {s1 :=s{‘xujpxm’, 18}s2 :=s{‘xujpxm ‘, 18}if s1==s2 {fmt.Println(‘s1==s2’)} else {fmt.Println(‘s1, s2 不相等’)}m1 :=m{18, map[string]string { ‘name’: ‘xujpxm’}}m2 :=m{18, map[string]string{‘name’: ‘xujpxm’}}if m1==m2 {fmt.Println(‘m1==m2’)} else {fmt.Println(‘m1, m2 不相等’)}}思考后看到答案
答疑解惑
编译失败。输出结果:无效操作: m1==m2(包含map[string]string的struct无法比较)
上面的代码中,s1==s2成立,但是在m1==m2时编译失败,因为结构体中的map无法比较;
本题考查的是结构的比较。有几点需要注意:
结构体只能比较相等性,但相同大小和类型的结构体不能比较。结构是否相同不仅与属性类型有关,还与属性的顺序有关;例如下面的s3和s1是不同的结构; s3:=struct { Age int name string }{age:18,name:’xujpxm’} 如果结构体的所有成员都可以比较,则可以通过==或!=比较结构体是否相等,并逐项进行比较。如果每一项都相等,则两个结构相等,否则不相等;那么什么是可比的呢?常见的有bool、数值类型、字符、指针、数组等,比如slice、map(只能和nil值比较)、函数等不能比较。详细信息请参考Go文档。 http://docs.studygolang.com/ref/spec#Comparison_operators
其他相关答案请在评论区留言!
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/126504.html
用户评论
栀蓝
这篇文章真是太好了!总觉得 Go 的 struct 用法挺难懂,你说的这个题简直点明了问题的关键呢!我终于明白为什么有些地方会报错啦,感谢你的分享!
有10位网友表示赞同!
执拗旧人
今天看到这篇 "Go学习每日一问(5) struct" 的标题就感觉很有意思。没想到你会用这么简单的问题来讲解这种有点抽象的概念,读起来清晰易懂,太赞了!
有14位网友表示赞同!
暮染轻纱
我之前做项目的时候遇到过类似的结构体问题,当时可是费尽心思才想明白,要是早看到这篇文章就好了!你真是个高手,这种深入浅出地讲解能力简直令人佩服。
有11位网友表示赞同!
绝版女子
学习 Go 语言确实需要时常巩固和练习,每天一问就能让我更深入地理解这些基础概念。希望以后能够继续更新,学习一个新的 Golang 算法题。
有16位网友表示赞同!
晨与橙与城
这几天一直在研究 Golang 的结构体,感觉有点头反而容易迷茫。这个 "每日一问" 的思路很棒,能帮助我更好地掌握 Go 的核心语法,期待后续的分享!
有17位网友表示赞同!
别伤我i
觉得这个问题设计的有点简单?Go 结构体的应用场景其实很多,你能不能再讲一些实际项目中的例子?这样更有说服力和引导性。
有19位网友表示赞同!
淡抹烟熏妆丶
文章写的挺好,但是我觉得 "每日一问" 这种形式可能太局限了, 难免有些单调。 可以尝试用其他更有趣的的形式来讲解 Go 的内容,比如编程挑战、案例分析等等!
有15位网友表示赞同!
请在乎我1秒
我虽然不太认同这个说法,我认为 struct 用的场景太多了 你不能把所有问题都归结为 “空指针” 不太妥当吧?应该从更宏观的角度去理解结构体。
有13位网友表示赞同!
心已麻木i
这篇文章对我来说很有帮助!学习 Go 的时候经常会遇到这样的结构体问题,现在终于明白了为什么会出现这种情况了。下次碰到类似的问题就自信多了!
有19位网友表示赞同!
凉月流沐@
感觉这篇文章比较基础,没有挑战性,希望你能用一些更深入、更实际的例子来讲解 Go 的结构体,这样我才能学到更多有用的知识。
有10位网友表示赞同!
见朕骑妓的时刻
虽然这个 "每日一问" 系列挺不错,但这篇文章写的有点重复,和之前的文章内容类似。建议多创新,尝试从更独特角度出发!
有11位网友表示赞同!
醉红颜
学习Go语言确实需要这样的总结和练习,谢谢分享!这篇文章点明了结构体的问题关键,我之前也遇到过类似的情况,现在终于明白原因是因为空指针引起的。
有9位网友表示赞同!
風景綫つ
我觉得 Go 語言的結構體設計挺好的,而且你解释的也很清晰。这种“每日一问”的方式非常好,能让我每天学到些许知识,积少成多!
有6位网友表示赞同!
刺心爱人i
这个"Go学习每日一问(5) struct" 的文章挺实用的,尤其对初学者来说很有帮助。但是我希望你能加入一些更具体的代码示例和讲解实例,这样更直观易懂。
有12位网友表示赞同!
有阳光还感觉冷
希望以后的文章能涉及到 Go 结构体更复杂的使用场景,比如指针操作、接口定义等,这样就能更加全面地了解结构体的应用!
有6位网友表示赞同!
岁岁年年
很高兴看到你分享这种学习 Go 的方法,每日一问确实能够帮助我巩固知识。期待你能继续更新,涵盖更多 Golang 方面的知识点。
有14位网友表示赞同!
╭摇划花蜜的午后
这篇文章有点肤浅啊,只讲了结构体和空指针的问题,却没有深入讨论结构体的优缺点以及与其它数据结构的比较,感觉缺乏深度!
有20位网友表示赞同!
傲世九天
学习Go语言确实需要不断练习,你提出的 "每日一问" 的问题很有帮助,特别是关于 struct 这类的常见问题。希望能看到更多类似的干货!
有8位网友表示赞同!