= 25 //Int let heigth = 1.79 //Double //Explicito var explicitInt: Int = Int() let explicitFlout: Float = 4 let adress: String = "Avenida dos Andradas, 3000 - Sta. Efigênia"
description() -> String { var message: String switch self { case .OnTime: message = "Train is on time." case .Delayed(let minutes): message = "Train is delayed by \(minutes) minute(s)" } return message } }
a diferença que precisam estar ligados a algum tipo. class SomeClass { static func someTypeMethod() { //method implementation goes here } } SomeClass.someTypeMethod()
lastName: "Smith") var firstName = person.firstName // John var lastName = person.lastName // Smith //Não indicado - Acessando por index var person = ("John", "Smith") var firstName = person.0 // John var lastName = person.1 // Smith
tupla var (x, y, z) = tupla print("x = \(x) - y = \(y) - z = \(z)") // Decompondo uma tupla ignorando alguns argumentos var (_,_,z) = tupla print("z = \(z)")
ou funções. São equivalentes aos blocks em Objective-C e callbacks em outras linguagens. //Sintaxe de uma closure { (parameters) -> return type in statements }
um Int var double: (Int) -> (Int) = { x in return 2 * x } double(2) // 4 // Passando uma closure para uma variável var alsoDouble = double alsoDouble(3) // 6