有关在 Go 中混合使用数值类型的操作的问题

我知道Go是一种静态类型的语言,它不允许混合数字类型的操作,例如,你不能将添加到:intfloat64


package main


import (

    "fmt"

)


func main() {

        var a int = 1

        var b float64 = 1.1

        fmt.Println(a + b)

}

运行此程序将导致错误:


无效操作:a + b(不匹配的类型 int 和 float64)


但是当我在不声明变量的情况下进行数学运算时,程序会返回所需的结果,即:1 + 1.12.1


package main


import (

    "fmt"

)


func main() {

        fmt.Println(1 + 1.1)

}

所以我的问题是:为什么有效?数字类型是什么,当我直接在加法中使用它们时?1 + 1.111.1


偶然的你
浏览 105回答 1
1回答

哔哔one

这是因为 被计算为非类型化常量表达式。1 + 1.1所以下面的程序也有效,因为现在和都是非类型化的常量。abpackage mainimport (    "fmt")func main() {        const a = 1        const b = 1.1        fmt.Println(a + b)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go