3 回答

TA貢獻1876條經(jīng)驗 獲得超5個贊
Go 不在虛擬機上運行。
從語言規(guī)范來看,ptr
和ptr2
都是函數(shù)值。它們可以被稱為ptr(1, 2)
和ptr2(1, 2, 3)
。
深入到實現(xiàn)中,變量ptr
和ptr2
指向 func 值的指針。有關func 值的信息,請參閱函數(shù)調用設計文檔。注意語言的“function”值和實現(xiàn)的“func”值之間的區(qū)別。
因為fmt包使用的反射API 是通過 func 值間接獲取要打印的指針,所以調用 來打印函數(shù)的實際地址。fmt.Println(ptr)
plus

TA貢獻1807條經(jīng)驗 獲得超9個贊
它們是函數(shù)值:
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() {
funcp := plus
funcpp := plusPlus
fmt.Println(funcp)
fmt.Println(funcpp)
fmt.Println(funcp(1, 2))
fmt.Println(funcpp(1, 2, 3))
}
輸出:
0x20000
0x20020
3
6
- 3 回答
- 0 關注
- 352 瀏覽
添加回答
舉報