在下面的代碼中,我無法理解為什么聲明沒有將b的值轉換為int。另外,如果我們無論如何都可以完全省略這條線來獲得相同的結果,那么這樣做有什么意義呢?a = int(b)package mainimport "fmt"func main() { a, b := 10, 5.5 a = int(b) fmt.Println(float64(a) + b)}多謝!去類型轉換
3 回答

白衣染霜花
TA貢獻1796條經驗 獲得超10個贊
a, b := 10, 5.5在此行中,將值分配給 具有默認類型,并將值分配給 具有默認類型 。游覽這里10aint5.5bfloat64
則此行得到 的整數值,即 并分配給 。如果你不需要 的上一個值,那么這兩行可以寫成如下,得到相同的結果。a = int(b)b5aa
package main
import (
"fmt"
)
func main() {
b := 5.5
a := int(b)
fmt.Println(float64(a) + b) //Output: 10.5
}
fmt.Println(float64(a) + b)您不能使用不同類型的操作。這就是為什么您需要轉換為并執行該操作的原因。結果 a,如果您將其分配給另一個變量。afloat64float64

慕尼黑5688855
TA貢獻1848條經驗 獲得超2個贊
package main
import "fmt"
func main() {
a, b := 10, 5.5
a = int(b)
fmt.Println(float64(a) + b, a)
}
輸出
10.5 5
它似乎正在將 b 轉換為整數 -> 5 -> a = a+b = 5 + 5.5 = 10.5
此處 b 被類型轉換為 int,并將該值放在 a 中。
如果需要更改 b 的值,則應執行 。b = int(b)
- 3 回答
- 0 關注
- 103 瀏覽
添加回答
舉報
0/150
提交
取消