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

 

你好哇,公号正在举行答题送书活动,详情请看《自律改变自我,部落第 ① 期答题送书!》,今天是活动第 16 天,答题继续!

一起来看下昨天题目的解析:

1.关于 slice 或 map 操作,下面正确的是?

  • A

1var s []int
2s = append(s,1)
  • B

1var m map[string]int
2m["one"] = 1 
  • C

1var s []int
2s = make([]int, 0)
3s = append(s,1)
  • D

1var m map[string]int
2m = make(map[string]int)
3m["one"] = 1 

参考答案及解析:ACD。

2.下面代码输出什么?

 1func test(x int) (func(), func()) {
2    return func() {
3        println(x)
4        x += 10
5    }, func() {
6        println(x)
7    }
8}
9
10func main() {
11    a, b := test(100)
12    a()
13    b()
14}

参考答案及解析:100 110。知识点:闭包引用相同变量。

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

看下今天的题目:

1.关于字符串连接,下面语法正确的是?

  • A. str := 'abc' + '123'

  • B. str := "abc" + "123"

  • C. str := '123' + "abc"

  • D. fmt.Sprintf("abc%d", 123)

2.下面代码能编译通过吗?可以的话,输出什么?

 1func main() {
2
3    println(DeferTest1(1))
4    println(DeferTest2(1))
5}
6
7func DeferTest1(i int) (r int) {
8    r = i
9    defer func() {
10        r += 3
11    }()
12    return r
13}
14
15func DeferTest2(i int) (r int) {
16    defer func() {
17        r += i
18    }()
19    return 2
20}

 

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

 

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

 

推荐阅读:

800 字彻底理解 Go 指针

指针(译)

 

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

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

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

Go 面试每天一篇(第 70 天)
上一篇:软考哪个科目更容易过?70%考生都选这几个科目


下一篇:Java面试题!java值传递和引用传递例子