一次糟糕的golang面试体验

airun ·
我的理解是这样的,第一个问题, str[0] = 'a' ([]byte)(str)[1] = `b` 由于等号左边表达式不可寻址,过不了编译。 第二个问题,我第一反应是没输出,因为主线程会比协程更快结束。上边也有人说了,加个sleep...
#10
更多评论
这个面试官有点2b
#1
这个面试官第二题肯定是错了。他测试少了 ``` package main import ( "fmt" "time" ) func main() { m := map[string]int{ "a":1, "b":2, "c":3, } for k,v := range m { go func(kk * string,vv * int) { fmt.Printf(" %v , %v \n",*kk,*vv) }(&k,&v) //d } // this is fine 3 time.Sleep(1 * time.Second) } ``` 多运行几次能够得到三种不同结果 b,2 b,2 b,2 c,3 c,3 c,3 a ,1 a ,1 a ,1 ```
#2