【高德Golang二面面经】

非常有意思的一场面试,全程多选题,选完给面试官解释为什么选指定答案,其他答案错在哪。

面试官不开摄像头,回答完一个继续出另一个。

关于 select 语句的分支选择规则,以下说法正确的是?

A:所有 case 表达式都会在 select 语句执行之初被求值

B:仅当所有 case 表达式都被求值完毕后,select 语句才会开始选择候选分支

C:若有多个候选分支满足选择条件,那么 select 语句会用一中伪随机算法选择其中的一个

D:D:select 语句中的默认分支只在无候选分支可选时才会被执行,并且与它的编写位置无关

关于 context.Context,以下说法错误的是?

A:实现一对多的 goroutine 协作流程,context.Context比sync.WaitGroup更合适

B:此类值是可以繁衍的,这些子值可以携带其父值的属性和数据,也可以响应我们通过其父值传达的信号

C:所有的 Context 值共同构成了一棵上下文树

D:通过调用 context.Background 函数,我们可获得一个新的作为根的Context值

关于 sync.Pool,以下说法错误的是?

A:我们必须先向此类值中放入足够多的对象,才能在使用时取出有效的对象,否则将会取出nil

B:此类值在被真正使用后就不应该再被复制了

C:此类值中的对象会永远存在,除非被手动删除

D:此类值中的本地池列表的长度总是与 Go 语言调度器中的 P的数量相同

关于条件变量,以下说法正确的是?

A:条件变量是基于锁的

B:当需要等待通知时,条件变量的 Wait 方法总是会先解锁再阻塞当前的goruotine

C:当收到通知时,条件变量的 Wait 方法会先加锁再唤醒当前的goruotine

D:条件变量的 Signal 方法会把通知发给所有正在等待的 Wait方法

以下哪些代码可以让当前的 goroutine 暂时让出 CPU

A:runtime.Gosched()

B:假设 lock 代表互斥锁:lock.Lock()

C:time.Sleep(time.Millisecond)

D:runtime.GC()

哪些类型不可以作为字典的键类型?

A:函数类型

B:字典类型

C:切片类型

D:通道类型

关于 append 函数的说法正确的是?

A:它总会返回新的切片

B:它有时会返回指向新底层数组的新切片

C:它有时会返回指向原底层数组的新切片

D:它总会返回我们传给它的那个切片

一个切片的容量什么时候会与其长度一致

A:在用 make 函数初始化切片时指定其容量与长度一致

B:在用 make 函数初始化切片时不指定其容量

C:用字面量直接初始化一个切片值的时候

D:当切片的长度等于其底层数组的长度时

最难受的一场面试,呵呵

全部评论
暑假实习,我也面到这些题目了😂他说虽然不知道答案对不对,但我讲得很好😂
点赞 回复 分享
发布于 2024-03-27 20:45 上海
大佬不是Java吗,咋问的全是golang
点赞 回复 分享
发布于 2023-09-21 10:33 北京
杭州golang 岗位,在找工作的小伙伴滴滴我哦
点赞 回复 分享
发布于 2023-09-05 17:32 浙江
tql
点赞 回复 分享
发布于 2023-09-03 15:49 浙江
m
点赞 回复 分享
发布于 2023-09-03 08:54 四川

相关推荐

点赞 评论 收藏
分享
评论
5
32
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务