Bilibili(B站) Golang开发实习面经
之前面的了,有点记不太清,将就看吧。
面试官迟到->推迟15min,总共面了也就15分钟,全都是代码分析、设计题
- 经典 golang 闭包
- slice 拷贝问题
func TestSliceAppend(t *testing.T) {
arr1 := []int{1, 2, 3, 4, 5, 6}
arr2 := arr1
arr2 = append(arr2[:2], arr2[3:]...)
fmt.Println(arr1)
fmt.Println(arr2)
}
- 经典 append 扩容问题,大概是这样:
func TestSlice2(t *testing.T) {
e := []int32{1, 2, 3}
fmt.Println("cap of e before:", cap(e))
e = append(e, 4, 5, 6, 7)
fmt.Println("cap of e after:", cap(e))
}
- 设置GOMAXPROCES(1),调度问题
func TestProcs(t *testing.T) {
runtime.GOMAXPROCS(1)
wg := sync.WaitGroup{}
wg.Add(20)
for i := 0; i < 10; i++ {
go func() {
fmt.Println("i: ", i)
wg.Done()
}()
}
for i := 0; i < 10; i++ {
go func(i int) {
fmt.Println("i: ", i)
wg.Done()
}(i)
}
wg.Wait()
}
- 设计一个协程复用池,补充代码的形式
- 函数传参问题,就是在函数内部改变了slice切片长度,外层长度并不会变的问题。
- 单例模式
总共约15min,无反问,面完之后没消息了。
#软件开发2023笔面经##我的实习日记#

查看17道真题和解析