Go Quiz: Google工程师的Go语言面试题
面试题
Google工程师和Go语言布道者Valentin Deleplace会不定期分享一些Go语言的趣味题目。
我选取了最近的几道题目,给大家春节加加餐。
题目1:
// quiz0.go
package mainimport "fmt"func main()
s := []string{"a", "b", "c"}copy(s[1:], s)fmt.Println(s)
}
- A: [a a a]
- B: [a a b]
- C: [a a b c]
- D: [b c c]
- E: panic
slice
使用copy函数的注意事项。题目2:
// quiz1.go
package mainimport "fmt"func main() {
a := make([]int, 20)b := a[18:]
b = append(b, 2022)fmt.Println(len(b), cap(b))
}
- A: 1 2
- B: 3 4
- C: 3 33
- D: 3 40
slice
使用冒号:
截取操作的底层机制以及slice
的扩容原理。题目3:
// quiz2.go
package mainimport "fmt"func main() {
c := make(chan int, 1)
c <- 1
close(c)
close(c)
fmt.Println("OK")
}
- A: 死锁
- B: panic
- C: 打印"OK"
- D: 编译报错
channel
的注意事项。解析 这几道题对于看过我写的Go面试系列文章的同学来说,应该非常简单,可以给本人vx公众号发送消息
2022
获取答案。【Go Quiz: Google工程师的Go语言面试题】对答案有疑惑的可以看看我之前的2篇Go面试题解析:
- Go Quiz: 从Go面试题看slice的底层原理和注意事项
- Go Quiz: 从Go面试题看channel的注意事项
- Go Quiz: 从Go面试题看slice的底层原理和注意事项
- Go Quiz: 从Go面试题搞懂slice range遍历的坑
- Go Quiz: 从Go面试题看channel的注意事项
- Go Quiz: 从Go面试题看channel在select场景下的注意事项
- Go Quiz: 从Go面试题看defer语义的底层原理和注意事项
- Go Quiz: 从Go面试题看defer的注意事项第2篇
- Go Quiz: 从Go面试题看defer的注意事项第3篇
- Go Quiz: 从Go面试题看分号规则和switch的注意事项
- 官方教程:Go泛型入门
- 一文读懂Go泛型设计和使用场景
公众号:coding进阶。关注公众号可以获取最新Go面试题和技术栈。
个人网站:https://jincheng9.github.io/
知乎:https://www.zhihu.com/people/...
References
- https://twitter.com/val_delep...
推荐阅读
- 我的软件测试开发工程师书单
- 为Google|为Google Cloud配置深度学习环境(CUDA、cuDNN、Tensorflow2、VScode远程ssh等)
- 17个搜索引擎
- Google|Google - 1
- Android基础-Fragment
- [学习笔记]|[学习笔记] 02 测试工程师是怎么使用fiddler的
- 转行web前端工程师需要学习什么内容
- 2019年陕西省建筑中级工程师报名条件-建筑中级工程师报名条件
- 高效使用Google搜索
- 标杆房企项目工程师的6种能力