Swift 入門 | 関数 | inout 引数
Swift の関数について、もう 1 つ覚えておきたい機能が inout 引数である。これは渡された引数自体を変更できる特別な引数である。引数の前に inout を付ける。
(inout 引数名:型)
inout 引数に変数を渡すときは、変数名の前に & を付ける。リテラルは変更できないため、渡すことはできない。
次に inout 引数の例を示す。
func tax(inout price:Int, rate:Double = 0.08) -> Void {
price = Int(Double(price) * (1.0 + rate))
}
var num = 12300
tax(&num)
関数は次のように定義されている。
tax(inout price:Int, rate:Double = 0.08)
最初の引数 price が inout 引数である。戻り値の型は Void である。関数の呼び出しは次のようになる。
tax(&num)
これにより、変数 num の値が直接変更される。関数は値を返すのが基本だが、inout 引数を使うと変数に格納された値自体を直接変更できる。