0
点赞
收藏
分享

微信扫一扫

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

Jonescy 2022-11-10 阅读 200

你好哇,公号正在举行答题送书的活动,具体详情请看《

一起来看下

1.关于 channel 下面描述正确的是?

  • A. close() 可以用于只接收通道;
  • B. 单向通道可以转换为双向通道;
  • C. 不能在单向通道上做逆向操作(例如:只发送通道用于接收);

参考答案及解析:C。

2.下面的代码有什么问题?

1type T struct {
2 n int
3}
4
5func getT() T {
6 return T{}
7}
8
9func main() {
10 getT().n = 1
11}

参考答案及解析:编译错误:

1cannot assign to getT().n

直接返回的 T{} 无法寻址,不可直接赋值。

修复代码:

1type T struct {
2 n int
3}
4
5func getT() T {
6 return T{}
7}
8
9func main() {
10 t := getT()
11 p := &t.n // <=> p = &(t.n)
12 *p = 1
13 fmt.Println(t.n)
14}

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

看下今天的题目:

1package main
2
3import "fmt"
4
5func main() {
6 s := make([]int, 3, 9)
7 fmt.Println(len(s))
8 s2 := s[4:8]
9 fmt.Println(len(s2))
10}

2.下面代码输出什么?

1type N int
2
3func (n N) test(){
4 fmt.Println(n)
5}
6
7func main() {
8 var n N = 10
9 p := &n
10
11 n++
12 f1 := n.test
13
14 n++
15 f2 := p.test
16
17 n++
18 fmt.Println(n)
19
20 f1()
21 f2()
22}


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





Go 面试每天一篇(第 56 天)_golang


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




举报

相关推荐

0 条评论