最終更新:2022-02-18 (金) 17:15:47 (790d)  

Swift/関数
Top / Swift / 関数

func 関数名(引数の指定)->戻り値{
  return 値
}
// String型とInt型の引数を受け取り、String型を返す関数
func getHoge(msg: String, count: Int) -> String {
    return "\(count) \(msg)!"
}

違い

Swift 2

  • Swift2.x までは、関数の最初の引数名は呼び出し側では省略できた
  • ラベルと引数名が同じなら、#を使える

Swift 3

  • 呼び出す時に最初の引数にもラベルを付ける
  • ラベル名を_にすることで省略できるようにできる

引数の指定

  • func 関数名(ラベル1 引数名1:型1, ラベル2 引数名2:型2...)

引数名:型

ラベル 引数名:型

  • 関数を呼び出すときに引数に名前を指定できる
  • ショートハンド
  • 下のように書くと引数名が外部名になる
    • #引数名:型

引数名:タイプ=デフォルト値

  • 省略しても良くなる

可変引数 (引数名:型...)

inout?引数

  • 関数の引数はletと同様に通常は変更できないが、inout? キーワードを使うことで受け取った変数の参照に対して変更を行える。
  • 関数呼出し時には引数に&をつける

Swift/Trailing Closures

  • 関数の最後の引数のクロージャをカッコ外に出すことができる

戻り値

  • 省略するとVoid?

Swift/クラス

  • 値型では内部の状態を変更するようなメソッドにはmutating?キーワードを付ける必要がある。

関数リテラル

  • {実行する処理}
    {引数 in 実行する処理}

関連