- 面试题
- 第一天
- 第二天
- 第三天
- 第四天
- 第五天
- 第六天
- 第七天
- 第八天
- 第九天
- 第十天
- 第十一天
- 第十二天
- 第十三天
- 第十四天
- 第十五天
- 第十六天
- 第十七天
- 第十八天
- 第十九天
- 第二十天
- 第二十一天
- 第二十二天
- 第二十三天
- 第二十四天
- 第二十五天
- 第二十六天
- 第二十七天
- 第二十八天
- 第二十九天
- 第三十天
- 第三十一天
- 第三十二天
- 第三十三天
- 第三十四天
- 第三十五天
- 第三十六天
- 第三十七天
- 第三十八天
- 第三十九天
- 第四十天
- 第四十一天
- 第四十二天
- 第四十三天
- 第四十四天
- 第四十五天
- 第四十六天
- 第四十七天
- 第四十八天
- 第四十九天
- 第五十天
- 第五十一天
- 第五十二天
- 第五十三天
- 第五十四天
- 第五十五天
- 第五十六天
- 第五十七天
- 第五十八天
- 第五十九天
- 第六十天
- 第六十一天
- 第六十二天
- 第六十三天
- 第六十四天
- 第六十五天
- 第六十六天
- 第六十七天
- 第六十八天
- 第六十九天
- 第七十天
- 第七十一天
- 第七十二天
- 第七十三天
- 第七十四天
- 第七十五天
- 第七十六天
- 第七十七天
- 第七十八天
- 第七十九天
- 第八十天
- 第八十一天
- 第八十二天
- 第八十三天
- 第八十四天
- 第八十五天
- 第八十六天
- 第八十七天
- 第八十八天
- 第八十九天
- 第九十天
- 第九十一天
- 第九十二天
- 第九十三天
- 第九十四天
- 第九十五天
- 第九十六天
- 第九十七天
- 第九十八天
- 第九十九天
- 第一百天
- 第一百零一天
- 第一百零二天
- 第一百零三天
- 第一百零四天
- 第一百零五天
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
第二十四天
1.下面这段代码输出什么?
func main() {
m := map[int]string{0:"zero",1:"one"}
for k,v := range m {
fmt.Println(k,v)
}
}
参考答案及解析:
0 zero
1 one
// 或者
1 one
0 zero
map 的输出是无序的。
2.下面这段代码输出什么?
func main() {
a := 1
b := 2
defer calc("1", a, calc("10", a, b))
a = 0
defer calc("2", a, calc("20", a, b))
b = 1
}
func calc(index string, a, b int) int {
ret := a + b
fmt.Println(index, a, b, ret)
return ret
}
参考答案及解析:
10 1 2 3
20 0 2 2
2 0 2 2
1 1 3 4
程序执行到 main() 函数三行代码的时候,会先执行 calc() 函数的 b 参数,即:calc("10",a,b),输出:10 1 2 3,得到值 3,因为 defer 定义的函数是延迟函数,故 calc("1",1,3) 会被延迟执行;
程序执行到第五行的时候,同样先执行 calc("20",a,b) 输出:20 0 2 2 得到值 2,同样将 calc("2",0,2) 延迟执行;
程序执行到末尾的时候,按照栈先进后出的方式依次执行:calc("2",0,2),calc("1",1,3),则就依次输出:2 0 2 2,1 1 3 4。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论