switch-case
ブランチにオプションを使用する方法はありますか? 例:一部の機能f(arg:)
はString?
を返します。 f(arg:)
が0以外の値を返したときに、何らかのswitch-case
ブランチを実行し、この値を使用する必要があります。次の例を参照してください。アドバンストパターンマッチングスウィフト
switch
文がこれに等価であると思い
func f(arg: Int) -> String?
let someValue: Int = ...
switch someValue {
case -3, -2, -1:
print("error: negative")
case 10, 11, 12:
print("error: too big")
case let value, let str = f(arg: value): // HOW ????
print("success: non-nil string \(str)")
default:
print("fail")
}
は、[値]がdefault'を'よりも優れてみましょう。それで 'if let str = f(arg:value)'を使うことができます。 –
なぜそれが良いのか教えてもらえますか?すべての無効な値をキャッチした後、有効な値だけが 'default'の場合に残されます。 –
はい、' default'も論理的に正しいです。スウィフトのプログラミングでは、次の2つの理由から、スウィフトでの方が優れています。 1.開発者がSwiftの 'switch'で' default'を使用すると、それはもはや有用ではないことを示します。 2.変数のスコープが小さければ小さいほど、他の人がトレースしやすくなります。 私たちは 'case let validValue'を使用することができます。 –