[amazonjs asin=”4800711487″ locale=”JP” tmpl=”Small” title=”詳細! Swift 3 iPhoneアプリ開発 入門ノート Swift3 + Xcode 8対応”]
関数の多重定義(オーバーロード)
同名の関数でも、引数名や引数の数が異なると別の関数として扱われる。
これが多重定義(オーバーロード)と呼びます。
func calc(a:Int, b:Int) -> Int {
     return a+b
}
func cals(c:Int, d:Int) -> Int {
     return c*d
}
func calc(a:Int, b:Int, c:Int) -> {
     return (a+b)*c
}
ジェネリクスな関数
関数名
型を柔軟に扱えるようになる。
func atai<T>(val1: T,val2, T) -> T {
     return val1 > val2 ? val1 : val2
}
クロージャ
クロージャは名前がない関数のオブジェクトのようなもの、変数に代入したり、引数の値として関数に渡したりといった使い方をする。
書式
{(引数:引数の型) -> (戻り値の型) in
      ステートメント
      return 戻り値
}
let myFunc = {(a:Int, b:Int) -> Int ix
    return a + b
}
let ans = myFunc(1, 2)
      