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顶部的。)