libro
www.tuyano.com
初心者のためのSwiftプログラミング入門

関数をマスターする (6/6)

作成:2014-08-02 10:11
更新:2014-08-02 10:16

■INOUT引数について

Swiftの関数で、もう1つ覚えておきたいのが「INOUT」引数です。これは、渡された引数そのものを書き換えることのできる特殊な引数です。これは引数の前に「inout」をつけて指定します。
(inout 引数名 : タイプ )

このINOUT引数に指定する変数は、変数名の前に「&」をつけます。また、当たり前ですがリテラルを引数に指定することはできません(だってリテラルは書き換えられませんから)。

これも利用例を下に掲載しておきましょう。ここでは、関数の定義を以下のように記述しています。
tax(inout price:Int, rate:Double = 0.08)

最初のpriceがINOUT引数になっています。返値はVoidです。この関数の呼び出しを見るとこうなっていますね。
tax(&num)

これで、変数numの値が直接書き換わります。値を返すのが関数の基本ですが、このように直接書き換えることが可能になったことで、値そのものを改変しながら変数を利用できるようになります。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

func tax(inout price:Int, rate:Double = 0.08) -> Void {
    price = Int(Double(price) * (1.0 + rate))
}

var num = 12300
tax(&num)
※関連コンテンツ

「初心者のためのSwiftプログラミング入門」に戻る