Si je le ENUM suivant défini:Utilisation du format `if-case` dans l'affectation booléenne dans Swift?
enum CardRank {
case number(Int)
case jack
case queen
case king
case ace
}
Je sais 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
}
Au lieu d'utiliser une instruction if, cependant, je veux attribuer le résultat booléen de « est-ce un nombre "à une variable.
E.g. quelque chose comme ceci:
let isNumber = (case .number = cardRank)
Cependant, cela me donne l'erreur du compilateur:
error: expected expression in list of expressions
let isNumber = (case .number = cardRank)
^
Y at-il une syntaxe 1 ligne similaire pour obtenir ce genre d'affectation au travail?
Le plus proche je suis arrivé était, mais il est assez en désordre:
let isNumber: Bool = { if case .number = cardRank { return true } else { return false } }()
Je sais que je peux implement the Equatable protocol on my enum, puis procédez comme suit:
let isAce = cardRank == .ace
Mais je suis à la recherche d'une solution qui ne nécessite pas de se conformer au protocole Equatable.