functions swift shorthand

swift functions



Reduciendo el nĂºmero de parĂ©ntesis en Swift (7)

En swift tienes que agregar llaves incluso si solo hay una declaración en if:

if num == 0 { // Do something }

No puedes dejar las llaves, así de rápido si funciona la declaración.

¿Alguien sabe si hay una manera de usar algún tipo de taquigrafía en forma rápida? más específicamente, dejando de lado las llaves en cosas como declaraciones IF ... por ejemplo

if num == 0 // Do something

en lugar de

if num == 0 { // Do something }

Esos frenillos se convierten en algo de espacio cuando tienes unos pocos IF anidados.

PD. Sé que puedo hacer lo siguiente:

if num == 0 { // Do something }

Pero sigo sintiendo curiosidad por ese tipo de cosas.


Es muy simple: en Swift 4

playButton.currentTitle == "Play" ? startPlay() : stopPlay()

El código original es

if playButton.currentTitle == "Play"{ StartPlay() }else{ StopPlay() }


Podría usar una taquigrafía si enunciado como lo haría en object-c:

num1 < num2 ? DO SOMETHING IF TRUE : DO SOMETHING IF FALSE


Se llama taquigrafía si-si no condición. Si está interesado en el desarrollo de iOS en Swift, también puede manipular el comportamiento de los objetos de UI con esta propiedad.

Por ejemplo, quiero que mi botón esté habilitado solo cuando hay texto en el campo de texto. En otras palabras, debe permanecer deshabilitado cuando el recuento de caracteres en el campo de texto es cero.

button.enabled = (textField.characters.count > 0) ? true : false


Siempre se podría poner el entero if en una línea:

if num == 0 { temp = 0 }


Usted puede hacer eso :

let x = 10, y = 20; let max = (x < y) ? y : x ; // So max = 20

Y tantas cosas interesantes:

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()

La siguiente pila: http://codereview.stackexchange.com puede ser mejor para su pregunta;)

Editar: tener cuidado con el operador ternario

Al no hacer nada más que reemplazar el operador ternario con una sentencia if else, el tiempo de construcción se redujo en un 92.9%.

https://medium.com/@RobertGummesson/regarding-swift-build-time-optimizations-fc92cdd91e31#.42uncapwc


Swift 2.0 actualización Método 1:

a != nil ? a! : b

Método 2: Taquigrafía si

b = a ?? ""

Referencia: Apple Docs: Operador Condicional Ternario

y funciona,

u.dob = (userInfo["dob"] as? String) != nil ? (userInfo["dob"] as! String):""

Estoy reemplazando una cadena json con una cadena en blanco si es nula.

Edición: Agregando la sugerencia de Gerardo Medina ... siempre podemos usar la taquigrafía Si

u.dob = userInfo["dob"] as? String ?? ""