関数をマスターする (6/6)
作成:2014-08-02 10:11
更新:2014-08-02 10:16
更新:2014-08-02 10:16
■INOUT引数について
Swiftの関数で、もう1つ覚えておきたいのが「INOUT」引数です。これは、渡された引数そのものを書き換えることのできる特殊な引数です。これは引数の前に「inout」をつけて指定します。
このINOUT引数に指定する変数は、変数名の前に「&」をつけます。また、当たり前ですがリテラルを引数に指定することはできません(だってリテラルは書き換えられませんから)。
これも利用例を下に掲載しておきましょう。ここでは、関数の定義を以下のように記述しています。
最初のpriceがINOUT引数になっています。返値はVoidです。この関数の呼び出しを見るとこうなっていますね。
これで、変数numの値が直接書き換わります。値を返すのが関数の基本ですが、このように直接書き換えることが可能になったことで、値そのものを改変しながら変数を利用できるようになります。
(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)
※関連コンテンツ