Go面试题49

Posted by     "" on Tuesday, January 14, 2020

Go面试题49

1: 下面代码输出什么?

func main() {
    var ch chain int
    select {
        case v, ok := <-ch:
            println(v, ok)
        default:
            println("default")
    }
}

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

type People struct {
    name string `json:"name"`
}

func main() {
    js := `{
        "name": "seekload"
        }`
    var p People
    err := json.Unmarshall([]byte(js), &p)
    if err != nil {
        fmt.Println("err:", err)
        return
    }
    fmt.Println(p)
}

参考答案及解析

1: 答案及解析: default. chnil, 读写都会阻塞.

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

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

「真诚赞赏,手留余香」

Richie Time

真诚赞赏,手留余香

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