Swiftの関数定義
class内methodも普通の関数定義も同じ
主に引数の書き方の違いでいくつかの書き方がある
最も一般的な書き方
code:swift
func addBy(amount: Int, times: Int) -> Int {
return amount * times
}
呼び出し時はaddBy(2, 3)
外部引数名を指定できる
以下のコードでのred などが外部引数名
関数内部ではrなど短い名称を利用している
code:swift
func rgbToString(red r: Int, green g:Int, blue b: Int) -> String {
// 関数内では、各引数のローカル名を使用
return String(format:"%02x%02x%02x", r, g, b)
}
外部引数名を指定したときは呼び出し時にもそれを書かないといけない?
rgbToString(red: 1, green: 2, blue: 3)
rgbToString(1, 2, 3)
これはだめ?
外部引数名があれば順番入れ替えも許容?
rgbToString(green: 2, blue: 3, red: 1)
外部引数名と内部引数が同じにするためには#を使う
code:swift
func addBy(#amount: Int, #times: Int) -> Int { return amount * times
}
呼び出し時はaddBy(amount: 2, times: 3)
これも外部引数名は省略できない?
これ廃止された?
外部引数名を_にできる
何が嬉しい?
code:swift
// _とは?
func hoge(_ size: Int) -> String {}
外部引数名の省略時や#のときとは何が違う?
この書き方もしかしてバージョンが古い?
参考