2022-08-03:以下go语言代码输出什么?A:2;B:3;C:1;D:0。
package main
import "fmt"
func main() {
slice := []int{0, 1, 2, 3}
m := make(map[int]*int)
for key, val := range slice {
m[key] = &val
}
fmt.Println(*m[2])
}
答案2022-08-03:
答案选B。val只会定义一次,等价于以下代码。
import (
"fmt"
)
func main() {
slice := []int{0, 1, 2, 3}
m := make(map[int]*int)
key := 0
val := 0
for key < len(slice) {
val = slice[key]
m[key] = &val
key++
}
fmt.Println(*m[2])
}