博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go 面试每天一篇(第 96 天)
阅读量:2287 次
发布时间:2019-05-09

本文共 1599 字,大约阅读时间需要 5 分钟。

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

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

你好哇,欢迎来答题,一起来看下的解析:

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

1type foo struct{ Val int }  2  3type bar struct{ Val int }  4  5func main() {
6    a := &foo{Val: 5} 7    b := &foo{Val: 5} 8    c := foo{Val: 5} 9    d := bar{Val: 5} 10    e := bar{Val: 5} 11    f := bar{Val: 5} 12    fmt.Print(a == b, c == foo(d), e == f) 13}

参考答案及解析:false true true。这道题唯一有疑问的地方就在第一个比较,Go 语言里没有引用变量,每个变量都占用一个惟一的内存位置,所以第一个比较输出 false。这个知识点在《》有介绍。

2.下面代码输出什么?

1func A() int {
2    time.Sleep(100 * time.Millisecond) 3    return 1 4} 5 6func B() int {
7    time.Sleep(1000 * time.Millisecond) 8    return 2 9} 10 11func main() {
12    ch := make(chan int, 1) 13    go func() {
14        select {
15        case ch <- A(): 16        case ch <- B(): 17        default: 18            ch <- 3 19        } 20    }() 21    fmt.Println(<-ch) 22}

参考答案及解析:1、2随机输出。关于 select 的使用可以查看《》

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

看下今天的题目:

1.下面的代码输出什么?

1type Point struct{ x, y int }  2  3func main() {
4    s := []Point{
5        {
1, 2}, 6        {
3, 4}, 7    } 8    for _, p := range s {
9        p.x, p.y = p.y, p.x 10    } 11    fmt.Println(s) 12}

2.下面的代码有什么隐患?

1func get() []byte {
2    raw := make([]byte, 10000) 3    fmt.Println(len(raw), cap(raw), &raw[0]) 4    return raw[:3] 5} 6 7func main() {
8    data := get() 9    fmt.Println(len(data), cap(data), &data[0]) 10}

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

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

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

推荐阅读:

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

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

转载地址:http://xkfnb.baihongyu.com/

你可能感兴趣的文章
无闪烁刷屏技术的实现
查看>>
Crazybit开发手记(一):设计之数据结构和算法的分离
查看>>
Windows消息
查看>>
Windows线程及同步机制
查看>>
CImage类
查看>>
FreeMind 0.80 正式版已经出来了
查看>>
虚拟化技术比较 PV HVM
查看>>
无法捕获的C++异常
查看>>
一台机器配置多个ip地址时被动响应和主动发起的源ip选择
查看>>
E1,T1, PRI, Trunk
查看>>
Top的VIRT是什么
查看>>
Linux内核调度器 CFS调优
查看>>
CPU-bound(计算密集型) 和I/O bound(I/O密集型)
查看>>
美国生活小常识
查看>>
从美国回国探亲可带礼品大汇总
查看>>
比较全面的航空公司行李规定以及行李问题咨询
查看>>
基于AWS的自动化部署实践
查看>>
同时使用ColorKey以及顶点Alpha效果
查看>>
Cisco SIP支持的标准
查看>>
走向 Linux 2.6
查看>>