Go面试题61
1: 下面这段代码输出什么?
func main() {
var k = 1
var s = []int{1,2}
k, s[k] = 0, 3
fmt.Println(s[0] + s[1])
}
2: 下面代码输出什么?
func main() {
var k = 9
for k = range []int{}{}
fmt.Println(k)
for k =0; k < 3; k++ {
}
fmt.Println(k)
for k = range (*[3]int)(nil) {
}
fmt.Println(k)
}
参考答案及解析
1: 答案及解析: 4
. 知识点: 多重赋值.
多重赋值分为两个步骤, 有先后顺序: 1. 计算等号左边的索引表达式和取值表达式, 接着计算等号右边的表达式; 2. 赋值;
所以本例,会先计算s[k]
,等号右边是两个表达式是常量, 所以赋值等同于k, s[1] = 0, 3
2: 答案及解析: 932
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付