Go面试题55

Posted by     "" on Sunday, January 19, 2020

Go面试题55

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

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

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

type T struct {
    n int
}

func getT() T {
    return T{}
}

func main() {
    getT().n = 1
}

参考答案及解析

1: 答案及解析: C.

2: 答案及解析: 编译错误: cannot assign to getT().n

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

修复代码:

type T struct {
    n int
}

func getT() T {
    return T{}
}
func main() {

    t:= getT()
    p := &t.n
    *p = 1
    fmt.Println(t.n)

}

「真诚赞赏,手留余香」

Richie Time

真诚赞赏,手留余香

使用微信扫描二维码完成支付