関数をマスターする (3/6)
作成:2014-08-02 10:07
更新:2014-08-02 10:07
更新:2014-08-02 10:07
■ 複数の返値と「タプル」について
Swiftの関数は、非常に面白い特徴を持っています。その中でも重要なのは「複数の値を返す」という機能でしょう。
これは、実はSwiftの関数に秘密があるわけではないんです。Swiftに用意されている「タプル」という値に秘密があります。
タプルは、複数の値をひとまとめにして扱うためのものです。これは、()を使って簡単に書くことができます。
こうして作成されたタプルは、それを代入した変数などから名前を指定して値を取り出すことができます。例えば、こんな具合です。
ここでは、nameとageという値からなるタプルを変数personに代入しています。これらの値は、person.nameやperson.ageという形で取り出せるようになるのです。
●タプルを返値に使う
このタプルの考え方がわかれば、「複数の値を返す」という関数も簡単に作れることがわかるでしょう。
下のリスト欄にそのサンプルを挙げておきます。ここでは、以下のようにして返値の指定をしています。
これで、kakakuとzeiの2つの値からなるタプルが返値に指定されます。後は、関数の返値を代入した変数から、kakakuやzeiの値を取り出し利用するだけです。
これは、実はSwiftの関数に秘密があるわけではないんです。Swiftに用意されている「タプル」という値に秘密があります。
タプルは、複数の値をひとまとめにして扱うためのものです。これは、()を使って簡単に書くことができます。
( 名前 : 値 , 名前 : 値, …… )
こうして作成されたタプルは、それを代入した変数などから名前を指定して値を取り出すことができます。例えば、こんな具合です。
var person = (name:"Taro", age:35)
person.name
person.age
ここでは、nameとageという値からなるタプルを変数personに代入しています。これらの値は、person.nameやperson.ageという形で取り出せるようになるのです。
●タプルを返値に使う
このタプルの考え方がわかれば、「複数の値を返す」という関数も簡単に作れることがわかるでしょう。
下のリスト欄にそのサンプルを挙げておきます。ここでは、以下のようにして返値の指定をしています。
-> (kakaku:Int, zei:Int)
これで、kakakuとzeiの2つの値からなるタプルが返値に指定されます。後は、関数の返値を代入した変数から、kakakuやzeiの値を取り出し利用するだけです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
func tax(price:Int) -> (kakaku:Int, zei:Int) { var zei:Int = Int(Double(price) * 0.08) var kakaku:Int = price - zei return (kakaku:kakaku, zei:zei) } var res = tax(10000) res.kakaku res.zei
※関連コンテンツ