¿Cómo devuelvo 3 valores de datos separados del mismo tipo (Int) de una función en swift?
Estoy intentando devolver la hora del día, necesito devolver la hora, el minuto y el segundo como números enteros separados, pero todo de una vez desde la misma función, ¿es esto posible?
Creo que simplemente no entiendo la sintaxis para devolver múltiples valores. Este es el código que estoy usando, tengo problemas con la última línea (retorno).
Cualquier ayuda sería muy apreciada!
func getTime() -> Int
{
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond, fromDate: date)
let hour = components.hour
let minute = components.minute
let second = components.second
let times:String = ("\(hour):\(minute):\(second)")
return hour, minute, second
}
Respuestas:
Devuelve una tupla:
Luego se invoca como:
o:
fuente
También:
Luego se invoca como:
Esta es la forma estándar de cómo usarlo en el libro The Swift Programming Language escrito por Apple.
o simplemente como:
Es lo mismo pero menos claro.
fuente
the right answer can't compile right in swift 2.0
: mal, devolver una tupla sin nombre en Swift 2 funciona igual que con Swift 1. Ver esta captura de pantalla .time.hour
ya no funcionará Por favor actualice el código.debe devolver tres valores diferentes de este método y obtener estos tres en una sola variable como esta.
obtener el valor en una sola variable
ahora puede acceder a la hora, minutos y segundos simplemente con "." es decir.
fuente
Swift 3
Usar :
fuente
Actualizar Swift 4.1
Aquí creamos una estructura para implementar el uso de Tuple y validar la longitud del texto OTP. Eso debe ser de 2 campos para este ejemplo.
Uso:
¡Espero eso ayude!
Gracias
fuente
fuente