问题描述
先看下面的一段代码:
如果使用计算器或者口算,可以直接得出10/4=2.5。但是在Go语言中算出的结果却如下:
是不是很奇怪?按理说,结果应该是2.5,但这里却算出结果为2。如果使用Python语言,执行同样的步骤,得到的结果如下:
问题原因分析
因为Go语言是一种静态语言,在定义变量时就指定了变量的类型为int,那么系统推导出来的运算结果也会为int。如下把运算结果的类型打印出来时,则一目了然:
知道问题所在,那么解决问题的方法则很简单,把变量类型由int转换为float即可,如下:
总结
这个不是Go语言的问题,而是Go语言的特点。或者说是静态语言的特点,同样的问题在java中也存在。所以在使用时,要注意变量类型的转换。