go init 变量共享_Go 面试每天一篇(第 8 天)

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

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

最近开始转凉了,这两天杭州气温下降的特别明显,大家注意别着凉了。

继续我们的每日一题,昨天一共三道题,来看下。
1.
参考答案及解析:BD。知识点:字符串连接。除了以上两种连接方式,还有 strings.Join()、buffer.WriteString()等。

2.贴下原题代码:

 1const (
2    x = iota
3    _
4    y
5    z = "zz"
6    k 
7    p = iota
8)
9
10func main()  {
11    fmt.Println(x,y,z,k,p)
12}

参考答案及解析:编译通过,输出:0 2 zz zz 5。知识点:iota 的使用。给大家贴篇文章,讲的很详细
https://www.cnblogs.com/zsy/p/5370052.html

3.下面赋值正确的是()

  • A. var x = nil

  • B. var x interface{} = nil

  • C. var x string = nil

  • D. var x error = nil

参考答案及解析:BD。知识点:nil 值。nil 只能赋值给指针、chan、func、interface、map 或 slice 类型的变量。强调下 D 选项的 error 类型,它是一种内置接口类型,看下方贴出的源码就知道,所以 D 是对的。

1type error interface {
2    Error() string
3}

欢迎在留言区补充!

看下今天的题目:
1.关于init函数,下面说法正确的是()

  • A. 一个包中,可以包含多个 init 函数;

  • B. 程序编译时,先执行依赖包的 init 函数,再执行 main 包内的 init 函数;

  • C. main 包中,不能有 init 函数;

  • D. init 函数可以被其他函数调用;

2.下面这段代码输出什么以及原因?

 1func hello() []string {  
2    return nil
3}
4
5func main() {  
6    h := hello
7    if h == nil {
8        fmt.Println("nil")
9    } else {
10        fmt.Println("not nil")
11    }
12}
  • A. nil

  • B. not nil

  • C. compilation error  

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

 1func GetValue() int {
2    return 1
3}
4
5func main() {
6    i := GetValue()
7    switch i.(type) {
8    case int:
9        println("int")
10    case string:
11        println("string")
12    case interface{}:
13        println("interface")
14    default:
15        println("unknown")
16    }
17}

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

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

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

推荐阅读:

Go 语言接口详解(一)

Go 语言接口详解(二)

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

0e0c91ba97766bf82f6a33930c683385.gif

1ba1001b1f229ec4d16860ec2c26d9bc.png

给个[在看],是对四哥最大的支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值