下面代码中四个 Println(x) 语句输出的值分别为:

<pre class="language-markup"><code>func main() { x := 11 fmt.Println(x) { fmt.Println(x) x := 12 fmt.Println(x) } fmt.Println(x) } </code></pre>

234 次浏览
  • A、11 11 12 12
  • B、11 11 12 11
  • C、11 12 12 12
  • D、11 11 11 11
第一个 Println 输出的是 main 函数的局部变量 x(11);第二个 Println(x) 中的 x 也是 main 函数的局部变量 x(11);大括号引入了新代码块,这里新声明的 x 遮蔽了 main 函数的局部变量 x,于是第三个 Println(x) 输出的是大括号中的 x,即 12;最后的 Println 输出的仍是 main 函数的局部变量 x(11)。
挑战成功
2年前
挑战失败
2年前