我知道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 關注
- 124 瀏覽
添加回答
舉報
0/150
提交
取消