我正在阅读此代码,在第97行,我发现了以下代码:
switch lower(opts.color) case 'rgb' case 'opponent' ...
我从未见过空话(根据文件).这是什么意思?
"如果lower(opts.color)
是rgb
或者opponent
然后做...
"
要么
"如果lower(opts.color)
是rgb
什么也不做,如果它opponent
做...
"?
如果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