朱莉娅:如何é¿å…自动å‡çº§ç±»åž‹çš„å˜åŒ–?

时间:2015-02-09 01:36:34

标签: types julia

例如:

n::Uint8 = 0x00
x::Uint8 = n + 0x10
ERROR: type: typeassert: expected Uint8, got Uint64

我认为这是因为methods(+) a::Uint8, b::Uint8未定义,因此n会自动æå‡ä¸ºUint64。是å¦æœ‰æ›´å¥½çš„方法æ¥è§£å†³è¿™ä¸ªé—®é¢˜ï¼Œè€Œä¸æ˜¯åœ¨æ¯æ¬¡æ“作åŽå°†æ‰€æœ‰å†…容都é‡æ–°æŠ•å…¥åˆ°é¢„å…ˆæå‡çš„类型中?这ä¸æ˜¯è§£é‡Šå™¨åº”该能够自动处ç†çš„事情(å³å¦‚果在添加之åŽåº”该为x分é…Uint8)å—?

1 个答案:

答案 0 :(得分:7)

我认为Julia 0.3没有比

更好的方法
julia> typeof(uint8(0x00 + 0x10))
UInt8

但是在Julia 0.4中你ä¸å¿…担心,因为它ä¸å†è¿›è¡Œè‡ªåŠ¨å‡çº§äº†ï¼š

julia> typeof(0x00 + 0x10)
UInt8