Go 面试每天一篇(第 6 天)

Golang来啦 · · 316 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

点击上方蓝色“Golang来啦”关注我哟

加个“星标”,天天 15 分钟,一起学 Go

给大家推荐一首歌,个人感觉不错,适合边听边码,静静的!

言归正传,昨天的题目比较简单,但答案很丰富,值的一看。

参考答案及解析:编译不通过 invalid operation: sm1 == sm2

这道题目考的是结构体的比较,有几个需要注意的地方:

  1. 结构体只能比较是否相等,但是不能比较大小。

  2. 相同类型的结构体才能够进行比较,结构体是否相同不但与属性类型有关,还与属性顺序相关,sn3 与 sn1 就是不同的结构体;

1    sn3:= struct {
2        name string
3        age  int
4    }{age:11,name:"qq"}
  1. 如果 struct 的所有成员都可以比较,则该 struct 就可以通过 == 或 != 进行比较是否相等,比较时逐个项进行比较,如果每一项都相等,则两个结构体才相等,否则不相等;

那什么是可比较的呢,常见的有 bool、数值型、字符、指针、数组等,像切片、map、函数等是不能比较的。 具体可以参考 Go 说明文档。https://golang.org/ref/spec#Comparison_operators


欢迎在留言区补充!

看下今天的题目:
1.通过指针变量 p 访问其成员变量 name,有哪几种方式?

  • A.p.name

  • B.(&p).name

  • C.(*p).name

  • D.p->name

2.下面这段代码能否通过编译?如果通过,输出什么?

 1package main
2
3import "fmt"
4
5type MyInt1 int
6type MyInt2 = int
7
8func main() {
9    var i int =0
10    var i1 MyInt1 = i 
11    var i2 MyInt2 = i
12    fmt.Println(i1,i2)
13}

答案以及解析会在下一篇文章中给出,鼓励大家在留言区留下答案,抱团学习,日拱一卒,每天进步一点!


ps:看完文章如果有收获,顺手花 1s 时间帮点下文末右下方的「在看」,感激!

所有学习上的成功,都只依靠两件事 -- 策略和坚持,而坚持本身就是最重要的策略!


推荐阅读:

包罗万象的结构体

彻底学会Go指针


如果我的文章对你有所帮助,点赞、转发都是一种支持!

给个[在看],是对四哥最大的支持

本文来自:微信公众平台

感谢作者:Golang来啦

查看原文:Go 面试每天一篇(第 6 天)

入群交流(和以上内容无关):加入Go大咖交流群,免费领全套学习资料或添加微信:muxilin131420 备注:入群;或加QQ群:729884609

316 次点击  ∙  1 赞  
加入收藏 微博
被以下专栏收入,发现更多相似内容
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传