0
点赞
收藏
分享

微信扫一扫

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



你好哇,欢迎来答题,一起来看下

1.下面代码输出什么?

1func main() {
2 var ch chan int
3 select {
4 case v, ok := <-ch:
5 println(v, ok)
6 default:
7 println("default")
8 }
9}

参考答案及解析:default。ch 为 nil,读写都会阻塞。

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

1type People struct {
2 name string `json:"name"`
3}
4
5func main() {
6 js := `{
7 "name":"seekload"
8 }`
9 var p People
10 err := json.Unmarshal([]byte(js), &p)
11 if err != nil {
12 fmt.Println("err: ", err)
13 return
14 }
15 fmt.Println(p)
16}

参考答案及解析:输出 {}。知识点:结构体访问控制,因为 name 首字母是小写,导致其他包不能访问,所以输出为空结构体。修复代码:

1type People struct {
2 Name string `json:"name"`
3}

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

看下今天的题目:

1type T struct {
2 ls []int
3}
4
5func foo(t T) {
6 t.ls[0] = 100
7}
8
9func main() {
10 var t = T{
11 ls: []int{1, 2, 3},
12 }
13
14 foo(t)
15 fmt.Println(t.ls[0])
16}

  • A. 1
  • B. 100
  • C. compilation error

2.下面代码输出什么?



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





Go 面试每天一篇(第 50 天)_访问控制


Go 面试每天一篇(第 50 天)_访问控制_02


举报

相关推荐

0 条评论