Ответ 1
Вернуть кортеж:
func getTime() -> (Int, Int, Int) {
...
return ( hour, minute, second)
}
Затем он вызывается как:
let (hour, minute, second) = getTime()
или
let time = getTime()
println("hour: \(time.0)")
Как мне вернуть 3 отдельных значения данных одного и того же типа (Int) из функции в swift?
Я пытаюсь вернуть время суток, мне нужно вернуть Час, Минуту и Второе в качестве отдельных целых чисел, но все в одном направлении от одной и той же функции, возможно ли это?
Я думаю, что я просто не понимаю синтаксис для возврата нескольких значений. Это код, который я использую, у меня проблемы с последней (возвратной) строкой.
Любая помощь будет принята с благодарностью!
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
}
Вернуть кортеж:
func getTime() -> (Int, Int, Int) {
...
return ( hour, minute, second)
}
Затем он вызывается как:
let (hour, minute, second) = getTime()
или
let time = getTime()
println("hour: \(time.0)")
также:
func getTime() -> (hour: Int, minute: Int,second: Int) {
let hour = 1
let minute = 2
let second = 3
return ( hour, minute, second)
}
Затем он вызывается как:
let time = getTime()
print("hour: \(time.hour), minute: \(time.minute), second: \(time.second)")
Это стандартный способ использования этого слова в книге "Быстрый язык программирования", написанной Apple.
или так же:
let time = getTime()
print("hour: \(time.0), minute: \(time.1), second: \(time.2)")
это то же, но менее ясно.
вы должны вернуть три разных значения из этого метода и получить эти три в одной переменной, как это.
func getTime()-> (hour:Int,min:Int,sec:Int){
//your code
return (hour,min,sec)
}
получить значение в одной переменной
let getTime = getTime()
теперь вы можете получить доступ к часам, минутам и секундам просто ".". то есть.
print("hour:\(getTime.hour) min:\(getTime.min) sec:\(getTime.sec)")
Swift 3
func getTime() -> (hour: Int, minute: Int,second: Int) {
let hour = 1
let minute = 20
let second = 55
return (hour, minute, second)
}
Использовать:
let(hour, min,sec) = self.getTime()
print(hour,min,sec)