var k int = 1
var s = []int{1,2}
多重赋值分为两个步骤,有先后顺序,
算等号左边的索引表达式和取址表达式,接着计算等号右边的表达式;赋值运算等同于 k, s[1] = 0, 3。
k, s[k] = 0, 3
fmt.Println(s[0] + s[1])
输出是4
defer func() {
//这是捕获panic(2)的地方
fmt.Print(recover())
}()
defer func() {
//recover只在第一层defer函数中对外层的panic起作用
defer func() {
fmt.Print(recover())
}()
panic(1)
}()
//defer recover()
panic(2)
上面这段代码输出的是12
有疑问加站长微信联系(非本文作者)