Matlab开关/案例中的空语句?

justHelloWorld

我正在阅读代码,并在第97行找到了以下代码:

switch lower(opts.color)
  case 'rgb'
  case 'opponent'
  ...

我从未见过空语句(根据文档)。这是什么意思?

“如果lower(opts.color)rgb或者opponent那么做...

要么

“如果lower(opts.color)rgb什么也不做,如果它opponent...”?

Suever

如果该case块为空,则对于该特定情况不执行任何操作。所以,如果opt.colors'rgb'不采取任何行动。

究其原因,提交人甚至费心包括它作为case是因为如果他们没有,则内的代码otherwise块(其套opts.color'hsv'如果因为所提供的色彩空间未被识别的/有效的)将被执行的opt.colors'rgb',这显然是不希望行为。

该功能块等效于

if ~strcmpi(opts.color, 'rgb')
    switch lower(opts.color)
        case 'opponent'
            % Do stuff
        case 'hsv'
            % Do other stuff
        otherwise
            % Throw warning
    end
end

case与多个值匹配的语法要求对case表达式使用单元格数组

switch lower(opts.color)
    case {'rgb', 'opponent'}
        ...
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章