Como faço para retornar 3 valores de dados separados do mesmo tipo (Int) de uma função no swift?
Estou tentando retornar a hora do dia, preciso retornar a hora, o minuto e o segundo como números inteiros separados, mas todos de uma só vez partem da mesma função, isso é possível?
Eu acho que simplesmente não entendo a sintaxe para retornar vários valores. Este é o código que estou usando, estou tendo problemas com a última linha (de retorno).
Qualquer ajuda seria muito 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
}
Respostas:
Retornar uma tupla:
Em seguida, é invocado como:
ou:
fonte
Além disso:
Em seguida, é invocado como:
Esta é a maneira padrão de como usá-lo no livro The Swift Programming Language, escrito pela Apple.
ou apenas como:
é o mesmo, mas menos claramente.
fonte
the right answer can't compile right in swift 2.0
: errado, retornar uma tupla sem nome no Swift 2 funciona da mesma maneira que no Swift 1. Veja esta captura de tela .time.hour
não vai mais funcionar. Atualize o código.você deve retornar três valores diferentes desse método e obter esses três em uma única variável como esta.
obter o valor na variável única
agora você pode acessar a hora, min e segundos simplesmente "". ie
fonte
Swift 3
Usar :
fonte
Atualização Swift 4.1
Aqui, criamos uma estrutura para implementar o uso da Tupla e validar o comprimento do texto OTP. Isso precisa ser de 2 campos para este exemplo.
Uso:
Espero que ajude!
obrigado
fonte
fonte