がわおメモ

どこかの誰かのお役に立てれば。

Swift入門メモ -関数-

13,14 関数を使う

dotinstall.com

dotinstall.com

関数とは

  • 複数の処理をまとめることができる

基本形

func sayHello() {
    println("Hello")
}

sayHello() // 関数呼び出し「Hello」と表示

引数

基本

func sayHello(name: String) {
    println(name + " say hello")
}

sayHello("プラニメ") // 「プラニメ say hello」と表示

引数を渡すときに明示的に何のデータか表示したい場合

// mynameが渡ってきた時にnameに対応させる
func sayHello(myname name: String) {
    println(name + " say hello") // プラニメ say hello
}

sayHello(myname: "プラニメ") // 「プラニメ say hello」と表示

呼び出すときに渡すキーと関数内で使う変数名が一緒の場合

// 「#」をつけると同じ名前で渡されていると分かる
func sayHello(#name: String) {
    println(name + " say hello") // プラニメ say hello
}

sayHello(name: "プラニメ")

引数の初期値

func sayHello(#name: String = "プラニメ") {
    println(name + " say hello")
}

sayHello() // 引数がない場合は初期値を表示
sayHello(name: "gawao") // gawao say hello

返り値

// 整数型の引数を2つ取り、整数型を1つ返す
func sum(a:Int, b:Int) -> Int {
    return a + b
}

println(sum(5, 11)) // 16


// 複数の返り値->タプルが使える

func swap(a: Int, b: Int) -> (Int, Int) {
    return (b, a)
}

println(swap(5, 11)) // (11, 5)

関数に渡した引数を書き換える

渡した値を書き換える

  • 関数に値を渡すときは値のコピーが渡されていて、関数の中で処理されてもオリジナルの値が変わるわけではない
// 関数の中で値を変えているので、引数に「var」を付ける
func f(var a:Int) {
    a = 20 // 関数の中では「20」
}

var a = 5
f(a)
a // 「5」のまま
  • オリジナルの値を変える場合はinoutを使う
func f(inout a:Int) {
    a = 20
}

var a = 5
// 渡す時に「&」を付ける
f(&a)
a //「20」になる