0
:Swiftのブール代入で `if-case`形式を使用しますか?私は、次の列挙型が定義されている場合は
enum CardRank {
case number(Int)
case jack
case queen
case king
case ace
}
私はI can use an if-let
to check if it's a number知っている:
let cardRank = CardRank.number(5)
if case .number = cardRank {
// is a number
} else {
// something else
}
の代わりにif文を使用して、しかし、私はのブール結果を割り当てたい「これは数あります"を変数に追加します。
など。このような何か:
let isNumber = (case .number = cardRank)
はしかし、これは私のコンパイラエラーを与える:
error: expected expression in list of expressions
let isNumber = (case .number = cardRank)
^
が動作するようにこの種の代入を取得するために類似した1ライン構文はありますか?
は、私が得た最も近いがこれだったが、それはかなり厄介だ:私はimplement the Equatable protocol on my enumをすることができます知って、その後、次の操作を行い
let isNumber: Bool = { if case .number = cardRank { return true } else { return false } }()
:
let isAce = cardRank == .ace
しかし、私はEquatableプロトコルに準拠する必要がないソリューションを探しています。