Ale*_* L. 5 matlab enumeration casting
今天,我进入了以下代码片段:
classdef (Enumeration,Sealed) ClassBlabla < int8
enumeration
ALPHA(0)
BETA(1)
GAMMA(2)
end
methods (static)
function ret = doSomething()
ret = containers.Map(.......)
for i = int32(ClassBlabla.ALPHA):int32(ClassBlabla.GAMMA)
ret(i) = somethingelse(blablabla(i))
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
for中的int32(...)是什么?演员?为什么要转换为int32?ALPHA已经不是0,GAMMA已经是2吗?
它将 ALPHA 和 GAMMA 值从 扩大int8
到int32
。最有可能的是,这是因为blablabla()
函数需要int32
输入,或者ret
值需要有int32
键。ALPHA 和 GAMMA 已经是 0 和 2,但它们int8
代替int32
、 和blablabla()
或 的客户端doSomething()
可能无法很好地处理int8
这些值。(你可以看出 ALPHA 和 GAMMA 是int8
因为ClasBlabla < int8
顶部的。)