Golang中2*2i的奇怪结果

Golang中2*2i的奇怪结果,go,Go,主程序包 输入“fmt” 变量i=2 func main(){ j:=2*2i fmt.Println(j) } 为什么结果是(0+4i)?有人能解释清楚吗?Go是一种内置的数字类型,包括对复杂文本的支持。它们是一个相对模糊的特性,但它们使用了相当标准的符号 造成混淆的原因可能是您有此变量i。该变量实际上未在程序中使用。您在2*2i中看到的“i”字符实际上被复数文字所使用。它与变量i无关 尝试按如下方式向下移动变量声明: func main(){ 变量i=2 j:=2*2i fmt.Print

主程序包
输入“fmt”
变量i=2
func main(){
j:=2*2i
fmt.Println(j)
}
为什么结果是
(0+4i)
?有人能解释清楚吗?

Go是一种内置的数字类型,包括对复杂文本的支持。它们是一个相对模糊的特性,但它们使用了相当标准的符号

造成混淆的原因可能是您有此变量
i
。该变量实际上未在程序中使用。您在
2*2i
中看到的“i”字符实际上被复数文字所使用。它与变量
i
无关

尝试按如下方式向下移动变量声明:

func main(){
变量i=2
j:=2*2i
fmt.Println(j)
}
您将看到,实际上出现了一个编译器错误:
我声明但未使用


您可以在此处查看语言功能的文档:

2i
是一个复数。
2*2i=4i
。我想你想要
2*2*I