根据这个package mainimport "fmt"var i = 2func main() { j := 2 * 2i fmt.Println(j)}为什么结果是?有人能解释清楚吗?(0+4i)
1 回答
Smart猫小萌
TA贡献1911条经验 获得超7个赞
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
- 1 回答
- 0 关注
- 103 浏览
添加回答
举报
0/150
提交
取消