2 * 2i在Golang的奇怪结果

根据这个


package main


import "fmt"


var i = 2


func main() {

    j := 2 * 2i

    fmt.Println(j)

}

为什么结果是?有人能解释清楚吗?(0+4i)


暮色呼如
浏览 104回答 1
1回答

Smart猫小萌

Go 具有复数作为内置数值类型,包括对复数文本的支持。它们是一个相对晦涩的功能,但它们使用相当标准的符号。混淆的原因可能是您有此变量 。该变量实际上未在程序中使用。您看到的“i”字符实际上被复数字面量消耗。它与变量无关。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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go