我知道Go是一種靜態(tài)類型的語言,它不允許混合數(shù)字類型的操作,例如,你不能將添加到:intfloat64package mainimport ( "fmt")func main() { var a int = 1 var b float64 = 1.1 fmt.Println(a + b)}運(yùn)行此程序?qū)?dǎo)致錯誤:無效操作:a + b(不匹配的類型 int 和 float64)但是當(dāng)我在不聲明變量的情況下進(jìn)行數(shù)學(xué)運(yùn)算時,程序會返回所需的結(jié)果,即:1 + 1.12.1package mainimport ( "fmt")func main() { fmt.Println(1 + 1.1)}所以我的問題是:為什么有效?數(shù)字類型是什么,當(dāng)我直接在加法中使用它們時?1 + 1.111.1
1 回答

嗶嗶one
TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個贊
這是因?yàn)?被計(jì)算為非類型化常量表達(dá)式。1 + 1.1
所以下面的程序也有效,因?yàn)楝F(xiàn)在和都是非類型化的常量。ab
package main
import (
"fmt"
)
func main() {
const a = 1
const b = 1.1
fmt.Println(a + b)
}
- 1 回答
- 0 關(guān)注
- 123 瀏覽
添加回答
舉報(bào)
0/150
提交
取消