我正在阅读 this代码,在第 97 行,我发现了以下代码:
switch lower(opts.color)
case 'rgb'
case 'opponent'
...
我从未见过空语句(根据 documentation )。这是什么意思?
“如果 lower(opts.color)
是 rgb
或 opponent
则执行 ...
”
或
“如果 lower(opts.color)
是 rgb
什么也不做,如果它是 opponent
则做 ...
“?
最佳答案
如果 case
block 为空,则不会对该特定情况执行任何操作。因此,如果 opt.colors
是 'rgb'
,则不采取任何操作。
作者甚至不厌其烦地将其作为 case
包括在内的原因是,如果他们没有,otherwise
block 中的代码(设置 opts.color
到 'hsv'
因为提供的色彩空间未被识别/有效)如果 opt.colors
是 'rgb 将被执行'
这显然是不受欢迎的行为。
该 block 在功能上等同于
if ~strcmpi(opts.color, 'rgb')
switch lower(opts.color)
case 'opponent'
% Do stuff
case 'hsv'
% Do other stuff
otherwise
% Throw warning
end
end
匹配多个值的 case
block 的语法需要使用 cell array for the case expression .
switch lower(opts.color)
case {'rgb', 'opponent'}
...
end
关于matlab - Matlab 开关/案例中的空语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41812718/