Swift inline conditionnelle?

Comment puis-je faire dans Swift ?

(someboolexpression ? "Return value 1" : "Return value 2")

(non, je n'ai pas lu tout le manuel et pourtant... je l'ai probablement manqué sur la page 2!)

OK, donc sa à la page 91 et ci-dessus semble être correcte. Cependant, je suis en train de l'utiliser dans une chaîne de caractères comme suit:

println(" some string \(some expression ? "Return value 1" : "Return value 2")"

mais le compilateur n'est pas heureux. Aucune idée si ce si possible?

C'est aussi proche que j'ai pu obtenir

let exists = "exists"
let doesnotexist= "does not exist"

println("  something \(fileExists ? exists : doesnotexist)")
  • C'est probablement un oubli dans la grammaire, et vous pouvez remplir un rapport de bogue sur elle. Je n'ai pas vérifié la grammaire pour cela, mais il pourrait être intéressant de noter qu'il n'aime pas échappé littéraux, seules les variables. C'est à dire. vous ne pouvez pas faire cela: println("bonjour \("monde")"), mais vous pouvez le faire: laissez-monde = "monde"; println("bonjour \(monde)"), comme vous l'avez noté. Résumer, il semble vouloir une variable et non une expression.
  • Je vais le faire, merci. En attendant je vais accepter @MikeS réponse comme la meilleure option pour le moment
  • vous avez besoin d'un espace après let doesnotexist ou un préprocesseur erreur se produit et assurez-vous que vous avez déclaré let fileExists: Bool certains où, avant la println déclaration qui devrait en fait être print de Swift 2.0. Sinon, j'ai essayé votre code, il fonctionne très bien