for-range又来啦~
下面这段代码输出结果正确吗?
1 |
|
1 |
|
答案:
s2输出的结果是&{C}&{C}&{C}
,故上述的输出是错误的。
在前面的题目,我们提到过,for-range使用短变量声明(:=)的形式迭代变量时,变量i、value每次在循环题中都会被重用,而不是重新声明。故s2每次填充的都说value的地址,而在组后一次循环中,value被赋值为{C}。因此s2输出显示三个&{C}。
解决办法:
1 |
|
1 |
|
1 |
|
s2输出的结果是&{C}&{C}&{C}
,故上述的输出是错误的。
在前面的题目,我们提到过,for-range使用短变量声明(:=)的形式迭代变量时,变量i、value每次在循环题中都会被重用,而不是重新声明。故s2每次填充的都说value的地址,而在组后一次循环中,value被赋值为{C}。因此s2输出显示三个&{C}。
1 |
|