"まだ"の力 [Swift]基礎辞書

学んだことを書いていきます。質問やエラーなどございましたらお気軽にコメントお願いします。

初心者、基礎を積み上げる「タプルで返す関数、キーワード付きタプル」

関数の処理結果を複数の値で受け取る場合

!タプルを返り値として関数を定義するのが簡単。(他にはinout引数を指定したり返り血を構造体にしたりする方法がある)
例として税をかけた商品の値段と割引後の値段を返す関数を定義する。(割引の値はパーセント単位)

func price( price:Double,rate:Double) -> (Double,Double) {
    let tax = 1.08  //税率
    let correctprice = price * tax  //税込価格
    let discount = (price - price * (rate/100)) * tax  //割り引いて税込にする


    return (correctprice,discount)  //タプルとして返す
}

let result = price(1000, rate: 20)  
print(result)  //"(1080.0, 864.0)と出力"
}

Swiftでは複数の要素を持つものをタプルと言うが、1つの値の場合も1つの要素を持つタプルと表現する。返り値がない場合も同じ。つまり、関数の返り値は常にタプルであるとも言える。


関数同様、タプルもキーワードをつけることが可能。

let status = (attack:100,defense:90)
print(status.0)    //100と出力
print(status.attack)   //100と出力

キーワードは全てではなく一部にのみつけることも可能。

ここまでのまとめ3つ

  1. タプルを返り値として関数を定義するのが簡単
  2. 関数同様、タプルもキーワードをつけることが可能
  3. キーワードは全てではなく一部にのみつけることも可能

参考書籍:

To Be Continue...