在下面的代码中,我无法理解为什么声明没有将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 关注
- 83 浏览
添加回答
举报
0/150
提交
取消