说一些非常简单的 Golang 代码:
package main
import "fmt"
func plus( a int, b int) int {
return a+b
}
func plusPlus(a,b,c int) int {
return a +b + c
}
func main() {
ptr := plus
ptr2 := plusPlus
fmt.Println(ptr)
fmt.Println(ptr2)
}
这有以下输出:
0x2000
0x2020
这里发生了什么?这看起来不像一个函数指针,或者任何类型的指针,可以在堆栈中找到。我也明白 Go,虽然在线程部门提供了一些不错的低级功能,但它也需要一个操作系统才能运行;C 在所有计算机平台上都可以运行,操作系统可以用它编写,而 Go 需要一个操作系统才能运行,实际上现在只能在少数操作系统上运行。非常常规的函数指针是否意味着这适用于虚拟机?或者编译器只是链接到低级 C 函数?
慕运维8079593
函数式编程
相关分类