为了账号安全,请及时绑定邮箱和手机立即绑定

2 * 2i在Golang的奇怪结果

2 * 2i在Golang的奇怪结果

Go
暮色呼如 2022-09-05 15:31:58
根据这个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


查看完整回答
反对 回复 2022-09-05
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信