Objectとして関数を扱う方法です。
Kotlinでは、関数もオブジェクトとして扱うことができるので、
以下のようなプログラムが可能になります。
1 2 3 4 5 6 7 8 9 10 |
fun main(args: Array<String>) { // 関数をobjectとして代入する var func = ::hello // hello koko print(func("koko")) } fun hello(name: String): String { return "hello " + name } |
hello関数を変数funcに代入し、
funcを利用しhello関数を出力しています。
関数の型
先ほどは、hello関数の型を省略しましたが、
関数にも型を指定する方法があります。
関数名が同じで、引数が異なる場合などは、指定する必要があります。
formatは
関数名 : (引数型1,引数型2,…) : 返却値型 = ::関数名
となります。
例を見て見ましょう
1 2 3 4 5 6 7 8 9 10 |
fun main(args: Array<String>) { // 関数をobjectとして代入する var func: (String) -> String = ::hello // hello koko print(func("koko")) } fun hello(name: String): String { return "hello " + name } |
関数型を指定して関数オブジェクトを代入できました。