本文即Go语言的那些坑二。
Golang中函数被看做是值,函数值不可以比较,也不可以作为map的key
请问以下代码能编译通过吗?
import (
"fmt"
)
func main(){
array := make(map[int]func ()int)
array[func()int{ return 10}()] = func()int{
return 12
}
fmt.Println(array)
}```
**答案:**
可以正常编译通过。
稍作改动,改为如下的情况,还能编译通过吗?
```Go
import (
"fmt"
)
func main(){
array := make(map[func ()int]int)
array[func()int{return 12}] = 10
fmt.Println(array)
}
答案
不能编译通过。
在Go语言中,函数被看做是第一类值&#x