我知道Go是一种静态类型的语言,它不允许混合数字类型的操作,例如,你不能将添加到:intfloat64package mainimport ( "fmt")func main() { var a int = 1 var b float64 = 1.1 fmt.Println(a + b)}运行此程序将导致错误:无效操作:a + b(不匹配的类型 int 和 float64)但是当我在不声明变量的情况下进行数学运算时,程序会返回所需的结果,即:1 + 1.12.1package mainimport ( "fmt")func main() { fmt.Println(1 + 1.1)}所以我的问题是:为什么有效?数字类型是什么,当我直接在加法中使用它们时?1 + 1.111.1
1 回答
哔哔one
TA贡献1854条经验 获得超8个赞
这是因为 被计算为非类型化常量表达式。1 + 1.1
所以下面的程序也有效,因为现在和都是非类型化的常量。ab
package main
import (
"fmt"
)
func main() {
const a = 1
const b = 1.1
fmt.Println(a + b)
}
- 1 回答
- 0 关注
- 104 浏览
添加回答
举报
0/150
提交
取消