在 Julia 中,类型会自动“升级”,例如:
x = 8
y = 1.0
typeof(x)
typeof(y)
typeof(x + y)
是否可以禁用此自动类型提升?我是隐含的东西
(x + y)::Int64
。
最佳答案
如果不先将整数转换为通用类型,就没有任何方法可以将整数添加到 float 中。每种允许添加混合类型数值的语言都会首先进行某种提升。在这种情况下,如果您想要 Int
结果,可以使用 int
函数转换结果:int(8 + 1.0)
。请注意,这通过四舍五入将 float 转换为整数,而不是像许多语言中那样截断。您还可以在相加之前将 1.0
转换为 Int
,在这种情况下,您将两个整数相加并得到一个整数。
关于julia - 禁用类型 "promotion"(自动类型断言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22562042/