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