根據(jù)這個(gè)package mainimport "fmt"var i = 2func main() { j := 2 * 2i fmt.Println(j)}為什么結(jié)果是?有人能解釋清楚嗎?(0+4i)
1 回答

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