例如:
n::Uint8 = 0x00
x::Uint8 = n + 0x10
ERROR: type: typeassert: expected Uint8, got Uint64
我认为这是因为methods(+)
a::Uint8, b::Uint8
未定义,因此n
会自动提升为Uint64
。是否有更好的方法来解决这个问题,而不是在每次操作后将所有内容都重新投入到预先提升的类型中?这不是解释器应该能够自动处理的事情(即如果在添加之后应该为x
分配Uint8
)吗?
答案 0 :(得分:7)
我认为Julia 0.3没有比
更好的方法julia> typeof(uint8(0x00 + 0x10))
UInt8
但是在Julia 0.4中你不必担心,因为它不再进行自动升级了:
julia> typeof(0x00 + 0x10)
UInt8