Google工程师和Go语言布道者Valentin Deleplace会不定期分享一些Go语言的趣味题目。
我选取了最近的几道题目,给大家春节加加餐。
题目1:// quiz0.go package main import "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
这道题主要考察Go语言里对切片slice使用copy函数的注意事项。
题目2:// quiz1.go package main import "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
这道题主要考察以下Go语言里对切片slice使用冒号:截取 *** 作的底层机制以及slice的扩容原理。
题目3:// quiz2.go package main import "fmt" func main() { c := make(chan int, 1) c <- 1 close(c) close(c) fmt.Println("OK") }
A: 死锁
B: panic
C: 打印"OK"
D: 编译报错
这道题主要考察以下Go语言里管道channel的注意事项。
解析这几道题对于看过我写的Go面试系列文章的同学来说,应该非常简单,可以给本人vx公众号发送消息2022获取答案。
对答案有疑惑的可以看看我之前的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泛型设计和使用场景
开源地址文章和示例代码开源地址在GitHub: https://github.com/jincheng9/go-tutorial
公众号:coding进阶。关注公众号可以获取最新Go面试题和技术栈。
个人网站:Jincheng9's blog
知乎:无忌 - 知乎
References
https://twitter.com/val_deleplace
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)