0
switch @user && @other
when 'user' && true
...
when 'user2' && false
...
是這樣的可能嗎?由於某種原因,它不工作。謝謝!CoffeeScript多值開關語句?
switch @user && @other
when 'user' && true
...
when 'user2' && false
...
是這樣的可能嗎?由於某種原因,它不工作。謝謝!CoffeeScript多值開關語句?
很遺憾JS不認爲[1, 2] === [1, 2]
(因爲它們是不同的引用);否則你可以使用數組來做你想做的事情。
相反,這裏是一個函數:
multiSwitch = (values, cases...) ->
for c in cases
match = true
for i in [0...values.length]
unless c[i] is values[i]
match = false
break
return c[values.length]() if match
return
使用方法如下:
multiSwitch [@user, @other],
['user', true, ->
console.log 'case 1'
]
['user2', false, ->
console.log 'case 2'
]
取決於你在做什麼,它可能更容易,比如,串聯您的多個值成一個字符串,並做一個switch
。
謝謝Trevor! – fancy
你能定義「不工作」嗎?該代碼編譯好。或者你是否期望它將'user'與''user''和'@ other'與'true'進行比較?如果是這樣的話,就沒有辦法讓'switch'去做你想做的事情;你應該使用'if' /'else'或者寫一個函數。 –
好的。是的,我希望用戶比較'用戶'和其他的真實。 – fancy