Wie funktioniert let x where x.hasSuffix(“pepper”)?
-
20-12-2019 - |
Frage
Im folgenden Codeblock habe ich Probleme, ihn zu verstehen let x where x.hasSuffix("pepper")
.
let vegetable = "red pepper"
switch vegetable {
case "celery":
let vegetableComment = "Add some raisins and make ants on a log."
case "cucumber", "watercress":
let vegetableComment = "That would make a good tea sandwhich"
case let x where x.hasSuffix("pepper"):
let vegetableComment = "Is it a spicy \(x)"
default:
let vegetableComment = "Everything tastes good in soup."
}
Konsolenausgabe
GemüseKommentar: Ist es eine würzige rote Paprika?
Es scheint, als ob die folgende Logik geschieht.
x = vegetable
if (x's suffix == 'pepper')
run case
Kann mir das jemand besser erklären?
Lösung
vegetable
ist eine implizite String
.Es ist das Gleiche, was Sie schreiben würden:
var vegetable: String = "red pepper"
hasSuffix
wird als deklariert func hasSuffix(suffix: String) -> Bool
an gibt daher a zurück Bool
.Der where
Das Schlüsselwort gibt zusätzliche Anforderungen an und kann nur in verwendet werden switch
Aussagen.
Denn all das ist durchdrungen, das vegetable
Variable wird x zugewiesen (let x
).
Sie können mehr darüber lesen where
Und switch
Hier.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow