本文共 1095 字,大约阅读时间需要 3 分钟。
点击上方蓝色“Golang来啦”关注我哟
加个“星标”,天天 15 分钟,一起学 Go
1.下面代码有什么问题吗?
1func main() {23 for i:=0;i<10 ;i++ {4 loop:5 println(i)6 }7 goto loop8}
参考答案及解析:goto 不能跳转到其他函数或者内层代码。编译报错:
1goto loop jumps into block starting at
2.下面代码输出什么,请说明。
1func main() { 2 x := []int{0, 1, 2} 3 y := [3]*int{} 4 for i, v := range x { 5 defer func() { 6 print(v) 7 }() 8 y[i] = &v 9 }10 print(*y[0], *y[1], *y[2])11}
参考答案及解析:22222。知识点:defer()、for-range。for-range 虽然使用的是 :=,但是 v 不会重新声明,可以打印 v 的地址验证下。
解析若有不妥之处,欢迎在留言区交流、指正!
看下今天的题目:
A
1var s []int2s = append(s,1)
B
1var m map[string]int2m["one"] = 1
C
1var s []int2s = make([]int, 0)3s = append(s,1)
D
1var m map[string]int2m = make(map[string]int)3m["one"] = 1
2.下面代码输出什么?
1func test(x int) (func(), func()) { 2 return func() { 3 println(x) 4 x += 10 5 }, func() { 6 println(x) 7 } 8} 910func main() {11 a, b := test(100)12 a()13 b()14}
答案以及解析会在下一篇文章中给出,鼓励大家在留言区留下答案,抱团学习,日拱一卒,每天进步一点!
ps:看完文章如果有收获,顺手花 1s 时间帮点下文末右下方的「在看」,感激!
所有学习上的成功,都只依靠两件事 -- 策略和坚持,而坚持本身就是最重要的策略!
推荐阅读:
转载地址:http://jzfnb.baihongyu.com/