LoginSignup
1
1

More than 3 years have passed since last update.

Swiftで複数の戻り値をreturnする。

Posted at

戻り値を宣言する

メソッド宣言時の戻り値部でメソッド名()->(Data型1,Data型2,Data型3...)の様に記述をすると
複数のデータを1つのメソッドで返すことができる。


//日付取得メソッド
func getDate() -> (String, String, String, String){
    //操作日取得(yyyy-MM-dd)
    let date = Date()
    let formatter = DateFormatter()
    formatter.setLocalizedDateFormatFromTemplate("yMd")
    //日付計算
    let dayFromToday =  Calendar.current.date(byAdding: .day, value: -7, to: date)!
    let weekFromToday =  Calendar.current.date(byAdding: .weekday, value: -7, to: date)!
    let monthFromToday =  Calendar.current.date(byAdding: .month, value: -7, to: date)!

    let today = formatter.string(from: date);
    let DayFromToday = formatter.string(from: dayFromToday);
    let WeekFromToday = formatter.string(from: weekFromToday);
    let MonthFromToday = formatter.string(from: monthFromToday);

    return (today,DayFromToday,WeekFromToday,MonthFromToday)
}

//日付呼び出しメソッド
func viewDatePeriod(today:String,DayFromToday:String,WeekFromToday:String,MonthFromToday:String) {
    //処理〜〜〜
}

また、呼び出す際には以下のように取得したデータを割り振る必要がある。


var date = getDate()
viewDatePeriod(today: date.0,DayFromToday: date.1,WeekFromToday: date.2,MonthFromToday: date.3)

データに名前をつける

上記では、data.0など分かりづらいので以下の様にして宣言をすると呼び出し時に迷うことなくコーディングすることができる。

//データ選択時の呼び出しメソッド
func viewDatePeriod(today:String,DayFromToday:String,WeekFromToday:String,MonthFromToday:String) {

//日付呼び出しメソッド
viewDatePeriod(today: date.today,DayFromToday: date.DayFromToday,WeekFromToday: date.WeekFromToday,MonthFromToday: date.MonthFromToday)
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1