首页 > 其他分享 >Go 面试每天一篇(第 27 天)

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

时间:2022-11-10 12:36:44浏览次数:38  
标签:Println 27 const nil fmt 面试 func Go iota



你好哇,周末是最好的答题时间,一起来看下

1.下面这段代码输出什么?

const (
a = iota
b = iota
)
const (
name = "name"
c = iota
d = iota
)
func main() {
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
fmt.Println(d)
}

参考答案及解析:0 1 1 2。知识点:iota 的用法。

iota 是 golang 语言的常量计数器,只能在常量的表达式中使用。

iota 在 const 关键字出现时将被重置为0,const中每新增一行常量声明将使 iota 计数一次。

推荐阅读:https://studygolang.com/articles/2192

2.下面这段代码输出什么?为什么?

type People interface {
Show()
}

type Student struct{}

func (stu *Student) Show() {

}

func main() {

var s *Student
if s == nil {
fmt.Println("s is nil")
} else {
fmt.Println("s is not nil")
}
var p People = s
if p == nil {
fmt.Println("p is nil")
} else {
fmt.Println("p is not nil")
}
}

参考答案及解析:​​s is nil​​​ 和 ​​p is not nil​​。这道题会不会有点诧异,我们分配给变量 p 的值明明是 nil,然而 p 却不是 nil。记住一点,当且仅当动态值和动态类型都为 nil 时,接口类型值才为 nil。上面的代码,给变量 p 赋值之后,p 的动态值是 nil,但是动态类型却是 *Student,是一个 nil 指针,所以相等条件不成立。

更多细节可以参考

解析若有不妥之处,欢迎在留言区交流、指正!

看下今天的题目:

type Direction int

const (
North Direction = iota
East
South
West
)

func (d Direction) String() string {
return [...]string{"North", "East", "South", "West"}[d]
}

func main() {
fmt.Println(South)
}

2.下面代码输出什么?



  • A. 4
  • B. compilation error


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



Go 面试每天一篇(第 27 天)_赋值


Go 面试每天一篇(第 27 天)_赋值_02


标签:Println,27,const,nil,fmt,面试,func,Go,iota
From: https://blog.51cto.com/u_15289640/5840471

相关文章

  • Go 面试每天一篇(第 14 天)
    继续我们的每日答题,看下​​昨天的题目​​解析:1.参考答案及解析:AD。B只支持局部变量声明;C是赋值,str必须在这之前已经声明;2.参考答案及解析:5。这个例子中,hello()函数的......
  • Go 面试每天一篇(第 26 天)
    昨天的投票总人数不多,但结果已经很明显了,以后发布题目解析时贴上原题!回归主题,一起来看下1.下面这段代码输出什么?为什么?func(iint)PrintInt(){fmt.Println(i)}fun......
  • Go 面试每天一篇(第 28 天)
    你好哇,再坚持一周就到国庆长假啦!一起来看下1.下面这段代码输出什么?typeDirectionintconst(NorthDirection=iotaEastSouthWest)func(dDirection)S......
  • Go 面试每天一篇(第 13 天)
    昨天有同学反馈,看答案时可能需要翻看前一天的文章了解原选项或原题,来回切换不方便,想到一个解决办法,利用微信的悬浮窗功能实现文章快速切换。点击文章有上角的...,底部会出......
  • Go 面试每天一篇(第 11 天)
    我们的 《每天一篇》系列昨天被Go语言中文网的《Go语言爱好者周刊》第6期 收录了,现在还有点小激动呢!现在来答题的小伙伴越来越多,一种好现象,加油!还没开始的同学赶快......
  • Go 面试每天一篇(第 15 天)
    我们应该坚信美好的事物一定会发生,毫不怀疑地坚信,加油!继续我们的每天一篇,看下​​昨天题目​​的解析:1.参考代码及解析:C。知识点:常量,Go语言中的字符串是只读的。2.参考......
  • Go 面试每天一篇(第 10 天)
    九月第一天,加油!看下昨天的题目解析:1.参考答案及解析:ABC。A、B都是声明channel;C读取channel;写channel是必须带上值,所以D错误。2.参考答案及解析:A。打印一个map中不......
  • Go 面试每天一篇(第 16 天)
    周末了,答题不能停,先看下​​昨天题目​​的解析:1.参考答案及解析:A。知识点:nil切片和空切片。nil切片和nil相等,一般用来表示一个不存在的切片;空切片和nil不相等,表示......
  • Go 面试每天一篇(第 12 天)
    继续我们的每日答题,看下​​昨天的题目​​解析:1.参考答案及解析:ABD。知识点:cap(),cap()函数不适用map。2.参考答案及解析:A。当且仅当接口的动态值和动态类型都为nil时......
  • Go 面试每天一篇(第 17 天)
    昨天的题目相对比较简单,但需要注意的知识点挺多的,先看下​​昨天题目​​的解析:1.参考答案及解析:a、b、c的长度和容量分别是03、23、12。知识点:数组或切片的截取操作......