Question

Dans le bloc de code ci-dessous, j'ai du mal à comprendre 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."
}

Sortie console

légumeCommentaire : Est-ce un poivron rouge épicé

Il semble que la logique suivante se produise.

x = vegetable
if (x's suffix == 'pepper') 
    run case

Quelqu'un peut-il mieux m'expliquer cela ?

Était-ce utile?

La solution

vegetable est un implicite String.C'est la même chose que vous écririez :

var vegetable: String = "red pepper"

hasSuffix est déclaré comme func hasSuffix(suffix: String) -> Bool an renvoie donc un Bool.Le where Le mot-clé spécifie des exigences supplémentaires et ne peut être utilisé que dans switch déclarations.
Parce que tout cela est imprégné, le vegetable la variable est affectée à x (let x).

Vous pouvez en savoir plus sur le where et switch ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top