Richie Time

喧嚣的城市,宁静的山村,我们是新时代的纤夫.

Go面试题32

Go面试题32 1: 下面这段代码输出结果正确吗? type Foo struct { bar string } func main() { s1 := []Foo{ {"A"}, {"B"}, {"C"}, } s2 := make([]*Foo, len(s1)) for i, value := range s1 { s2[i] = &value } fmt.Println(s1[0], s1[1], s1[2]) fmt.Println(s2[0], s2[1], s2[2]) } // 输出 {A} {B} {C} &{A} &{B} &{C}

Go面试题31

Go面试题31 1: 下面这段代码输出什么? func change(s ...int) { s = append(s, 3) } func main() { slice := make([]int,5,5) slice[0] = 1 slice[1] = 2 change(slice...) fmt.Println(slice) change(slice[0:2]...) fmt.Printn(slice) } 2: 下面这段代码输出什么? func main() { var a = []int{1,2,3,4,5} var r [5]int for i, v

Go面试题30

Go面试题30 1: 下面这段代码输出什么? func f(n int) (r int) { defer func() { r += n recover() }() var f func() defer f() f = func() { r += 2 } return n + 1 } func main() { fmt.Println(f(3)) } 2: 下面这段代码输出什么? func main()

Go面试题29

Go面试题29 1: 下面这段代码是否正常结束? func main() { v := []int{1,2,3} for i := range v { v = append(v, i) } } 2: 下面这段代码输出什么? 为什么? func main() { var m = [...]int{1,2,3} for i, v := range m { go

Go面试题28

Go面试题28 1: 下面的代码有什么问题? func main() { fmt.Println([...]int{1} == [2]int{1}) fmt.Println([]int{1} == []int{1}) } 2: 一道很有代表的题目, 很多老司机都因此翻车! 下面这段代码输出什么? 如果编译错误的话