関数について
関数定義
通常はメソッドとして宣言される。
def 関数名[型パラメータ](引数名:引数の型名,……):返り値 = 関数本体
たとえば、
def sum(x:Int, y:Int) = x + y
高階関数
引数に関数をとる関数。
第一引数がIntで、第二引数は関数。第一引数の数字をなんらか加工して返す関数をとる。
def exe(x:Int, func:(Int)=>Int) = { println(x + " -> " + func(x)) } exe(5, (x:Int) => x * 9) // 5 -> 45
引数なし、戻り値なしの関数を引数に取る場合は、
def exe(func:() => Unit) = { println("start") func() println("end") } exe(() => println("hello")) // hello
上と似ているけど、コードブロックを引数にとる場合は、
def exe(func: => Unit) = { func } exe { val list = List(1,4,100,55,2) println(list.max) } // 100