根據(jù)這個package mainimport "fmt"var i = 2func main() { j := 2 * 2i fmt.Println(j)}為什么結(jié)果是?有人能解釋清楚嗎?(0+4i)
1 回答
Smart貓小萌
TA貢獻(xiàn)1911條經(jīng)驗 獲得超7個贊
Go 具有復(fù)數(shù)作為內(nèi)置數(shù)值類型,包括對復(fù)數(shù)文本的支持。它們是一個相對晦澀的功能,但它們使用相當(dāng)標(biāo)準(zhǔn)的符號。
混淆的原因可能是您有此變量 。該變量實際上未在程序中使用。您看到的“i”字符實際上被復(fù)數(shù)字面量消耗。它與變量無關(guān)。i2 * 2ii
嘗試像這樣向下移動變量聲明:
func main() {
var i = 2
j := 2 * 2i
fmt.Println(j)
}
你會看到你實際上得到了一個編譯器錯誤:i declared but not used
您可以在此處查看語言功能的文檔:https://golang.org/ref/spec#Imaginary_literals
- 1 回答
- 0 關(guān)注
- 140 瀏覽
添加回答
舉報
0/150
提交
取消
