back

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

■INOUT引数について

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

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

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

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

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



(by. SYODA-Tuyano.)

※リストが表示されない場合

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)



 

記事のリストに戻る



PC Site G+ mail