Swift入門:func ( 関数 , メソッド , function ) 引数編

 

Swift 関数(メソッド)の引数あたりをメインに、

  • デフォルト値の設定
  • 参照渡しでの値の渡し方
  • 配列を渡す際の引数の定義
  • 配列を戻り値として返す際の定義

を解説していきます。

 


引数のデフォルト


 


引数の右辺にデフォルト値が設定できます。


func 関数名(引数名: 型 = デフォルト値) {
}


 


用例:引数のデフォルト

say()

func say(word: String = “nyan”) {
println(word) // nyan
}


 


デフォルト値に”nyan”が入っています。


関数say()に引数を与えなくても、nyanが出力されます。


 


引数の参照渡し


 


参照渡しにすることによって、関数外の変数を書き換えることが可能です。


 


引数名の前にinoutを付け加えることで、参照渡しにできます。


参照渡しの際は、呼び出し元の変数に&をつける必要があります。


func 関数名(inout 引数名: 型) {
}


 


用例:引数の参照渡し

var aWord = “nyan”
say(&aWord)
println(aWord) //bow wow

func say(inout word: String) {
println(word) // nyan
word = “bow wow”
}


 


2行目aWordの値を変更したいので、&aWordを渡しています。


関数の引数の前にinoutを付け加え参照渡しとしています。


 


3行目では、2行目に書き換えられたaWordを参照しているので、


“bow wow”と出力されます。


 


値が変わらない例

func say(word: String) {
println(word)
word = “bow wow” // コンパイルエラー
}


 


通常の引数(inoutではない)はletの扱いとなるので、wordの値を変更できません。


let扱いなので、コンパイルエラーとなります。


 


関数での配列の渡し方、返し方


 

let num = [1, 2, 3, 4, 5]
println(say(num)) // [1, 2, 3, 4, 5]

func say(num: [Int]) -> [Int]{
return num
}


 


関数に配列の変数を渡したい場合は、


例のように[型]を引数の後ろに付け加えてください。


 


戻り値を配列で返したい場合も同様です。 -> [型] のようにしてやれば、


配列を返すことができます。


 

comments powered by Disqus