1. ホーム
  2. function

[解決済み] swiftで関数から複数の値を返す

2022-04-23 18:07:53

質問

swiftの関数から同じ型(Int)の3つの別々のデータ値を返すにはどうしたらいいですか?

時間、分、秒を別々の整数値として、同じ関数から一度に返したいのですが、可能でしょうか?

複数の値を返すための構文を理解していないだけだと思います。これは私が使っているコードですが、last(return)の行で困っています。

何かお手伝いいただけると幸いです。

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