欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-11 16:51:52
...

点击上方蓝色“Golang来啦”关注我哟

加个“星标”,天天 15 分钟,一起学 Go

时间过得真快,眨眼就到 2020 年,明天就是元旦,虽然只有一天假,还是可以好好休息,祝大家元旦快乐!按照惯例,放假期间不会推文!四哥也趁这个空挡好好休息调整下,整个 12 月份基本上是 10-12-6,有点扛不住呀!

一起来看下昨天题目的解析:

1.关于slice或map操作,下面正确的是。

A.

1var s []int
2s = append(s,1)

B.

1var m map[string]int
2m["one"] = 1 

C.

1var s []int
2s = make([]int, 0)
3s = append(s,1)

D.

1var m map[string]int
2m = make(map[string]int)
3m["one"] = 1 

参考答案及解析:ACD。

2.下面代码输出什么?请简要说明。

 1var ErrDidNotWork = errors.New("did not work")
 2
 3func DoTheThing(reallyDoIt bool) (err error) {
 4    if reallyDoIt {
 5        result, err := tryTheThing()
 6        if err != nil || result != "it worked" {
 7            err = ErrDidNotWork
 8        }
 9    }
10    return err
11}
12
13func tryTheThing() (string, error) {
14    return "", ErrDidNotWork
15}
16
17func main() {
18    fmt.Println(DoTheThing(true))
19    fmt.Println(DoTheThing(false))
20}

参考答案即解析:都输出 nil。知识点:变量的作用域。因为 if 语句块内的 err 变量会遮罩函数作用域内的 err 变量。

修复代码:

 1func DoTheThing(reallyDoIt bool) (err error) {
 2    var result string
 3    if reallyDoIt {
 4        result, err = tryTheThing()
 5        if err != nil || result != "it worked" {
 6            err = ErrDidNotWork
 7        }
 8    }
 9    return err
10}

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

一起来看下今天的题目:

1.下面代码输出什么?

1func main() {
2    fmt.Println(len("你好bj!"))
3}

2.是否可以编译通过?如果通过,输出什么?

 1func GetValue(m map[int]string, id int) (string, bool) {
 2    if _, exist := m[id]; exist {
 3        return "存在数据", true
 4    }
 5    return nil, false
 6}
 7
 8func main() {
 9
10    intmap := map[int]string{
11        1: "a",
12        2: "bb",
13        3: "ccc",
14    }
15
16    v, err := GetValue(intmap, 3)
17    fmt.Println(v, err)
18}

引自《Go夜读》

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

ps:看完文章如果有收获,顺手花 1s 时间帮点下文末右下方的「在看」,感激!

所有学习上的成功,都只依靠两件事 -- 策略和坚持,而坚持本身就是最重要的策略!

推荐阅读:

Go 语言机制之栈与指针

800 字彻底理解 Go 指针

如果我的文章对你有所帮助,点赞、转发都是一种支持!

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

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

给个[在看],是对四哥最大的支持