Est-ce que quelqu'un sait s'il y a un moyen d'utiliser une sorte de sténographie dans Swift? plus spécifiquement, en laissant de côté les accolades dans des choses comme les déclarations SI ... par exemple
if num == 0
// Do something
au lieu de
if num == 0
{
// Do something
}
Ces accolades prennent plutôt de la place lorsque vous avez quelques FI imbriqués.
PS. Je sais que je peux faire ce qui suit:
if num == 0 {
// Do something }
Mais je suis toujours curieux de savoir si ce genre de chose est possible
Vous pouvez le faire :
let x = 10, y = 20;
let max = (x < y) ? y : x ; // So max = 20
Et tant de choses intéressantes:
let max = (x < y) ? "y is greater than x" : "x is greater than y" // max = "y is greater than x"
let max = (x < y) ? true : false // max = true
let max = (x > y) ? func() : anotherFunc() // max = anotherFunc()
(x < y) ? func() : anotherFunc() // code is running func()
Cette pile suivante: http://codereview.stackexchange.com peut être meilleure pour votre question;)
Edit: soyez prudent avec l'opérateur ternaire
En ne faisant que remplacer l'opérateur ternaire par une instruction if else, le temps de construction a été réduit de 92,9%.
https://medium.com/@RobertGummesson/regarding-Swift-build-time-optimizations-fc92cdd91e31#.42uncapwc
Dans Swift, vous devez ajouter des accolades même s'il n'y a qu'une déclaration dans if:
if num == 0 {
// Do something
}
Vous ne pouvez pas laisser les accolades, c'est comment Swift si la déclaration fonctionne.
Swift 2.0 update Méthode 1:
a != nil ? a! : b
Méthode 2: Sténographie si
b = a ?? ""
Référence: Apple Docs: opérateur conditionnel ternaire
et ça marche,
u.dob = (userInfo["dob"] as? String) != nil ? (userInfo["dob"] as! String):""
Je remplace une chaîne JSON par une chaîne vide si elle est nulle.
Edit: Ajout de la suggestion de Gerardo Medina
u.dob = userInfo["dob"] as? String ?? ""
Vous pouvez utiliser un raccourci si déclaration comme vous le feriez dans objective-c:
num1 < num2 ? DO SOMETHING IF TRUE : DO SOMETHING IF FALSE
Vous pouvez toujours mettre toute la if
sur une seule ligne:
if num == 0 { temp = 0 }
c'est très simple: dans Swift 4
playButton.currentTitle == "Play" ? startPlay() : stopPlay()
Le code d'origine est
if playButton.currentTitle == "Play"{
StartPlay()
}else{
StopPlay()
}