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笔面经##我的实习日记#