OKADA LABO

swiftの関数の宣言と呼び出しで、引数にクラスを指定できる

関数の宣言で引数には型を指定するのは基本であります。以下

func <関数名>(<引数名>:<型>){
  命令
}

func hoge (num: Int){
  print(num)
}

hoge(num: 10)
=> 10

上記は問題ないですね。実は型の代わりにクラスを直接指定することが可能です。利用例としては、例えばUIButtonを指定して、共通の処理を複数のボタンに実行する関数を宣言した場合、このように記述できます。

func makeCircleButton(button: UIButton) {
    //ボタンを正円にする処理
    button.layer.cornerRadius = button.frame.width / 2
    button.layer.masksToBounds = true
}

//複数のボタンにmakeCircleButton()を実行
makeCircleButton(button: hogeButton)
makeCircleButton(button: mogeButton)
makeCircleButton(button: hekekeButton)