5

今天我进入了这个代码片段:

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

for 中的 int32(...) 是什么?演员表?为什么我要转换为 int32?ALPHA 不是已经为 0 而 GAMMA 不是已经为 2 了吗?

4

1 回答 1

2

它将 ALPHA 和 GAMMA 值从 扩大int8int32。这很可能是因为blablabla()函数需要int32输入,或者ret值需要有int32键。ALPHA 和 GAMMA 已经是 0 和 2,但它们int8不是int32, 和blablabla()/ 的客户doSomething()可能无法很好地处理int8值。(你可以说 ALPHA 和 GAMMA 是int8因为ClasBlabla < int8顶部的。)

于 2014-05-05T16:07:44.507 回答