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

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

程序员文章站 2022-04-11 15:28:43
...

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

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

你好哇,欢迎来答题,一起来看下昨天面试题目回忆的解析:

1.n 是秒数,下面代码输出什么?

1func main() {
2    n := 43210
3    fmt.Println(n/60*60" hours and ", n%60*60" seconds")
4}

参考答案及解析:43200 hours and 600 seconds。知识点:运算符优先级。算术运算符 *、/ 和 % 的优先级相同,从左向右结合。

修复代码如下:

1func main() {
2    n := 43210
3    fmt.Println(n/(60*60), "hours and", n%(60*60), "seconds")
4}

2.下面代码输出什么,为什么?

1const (
2    Century = 100
3    Decade  = 010
4    Year    = 001
5)
6
7func main() {
8    fmt.Println(Century + 2*Decade + 2*Year)
9}

参考答案及解析:118。知识点:进制数。Go 语言里面,八进制数以 0 开头,十六进制数以 0x 开头,所以 Decade 表示十进制的 8。

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

看下今天的题目:

1.关于协程,下面说法正确是()

  • A.协程和线程都可以实现程序的并发执行;

  • B.线程比协程更轻量级;

  • C.协程不存在死锁问题;

  • D.通过 channel 来进行协程间的通信;

2.在数学里面,有著名的勾股定理:

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

例如,有我们熟悉的组合(3,4,5)、(6、8、10)等。在 Go 语言中,下面代码输出 true:

1fmt.Println(3^2+4^2 == 5^2// true

问题来了,下面代码输出什么,请简要说明。

1func main() {
2    fmt.Println(6^2+8^2 == 10^2)
3}

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

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

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

推荐阅读:

800 字彻底理解 Go 指针

5 年 Gopher 都不知道的 defer 细节,你别再掉进坑里!

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

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

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

Go 面试每天一篇(第 87 天)
给个[在看],是对四哥最大的支持