Scalaにおけるバイアス応用関数とCurry関数
1000 ワード
バイアス応用関数
特定の適用シーンでは、一部のパラメータが常に同じ値をとる場合があります.毎回同じ値を指定しないように、この関数を使用して新しい関数を定義できます.
パラメータの一部を保持するには、次のようにします.パラメータタイプの代表;注意パラメータタイプにはマークが必要です.すべてのパラメータを保持するには、関数名_を使用します.関数の割り当てを行い、関数名の後ろにスペースがあることに注意します.
出力結果
Curry化関数
Curry化関数とは、複数のパラメータリストがあり、各パラメータリストに1つのパラメータしか含まれていない関数を指します.
出力結果
特定の適用シーンでは、一部のパラメータが常に同じ値をとる場合があります.毎回同じ値を指定しないように、この関数を使用して新しい関数を定義できます.
パラメータの一部を保持するには、次のようにします.パラメータタイプの代表;注意パラメータタイプにはマークが必要です.すべてのパラメータを保持するには、関数名_を使用します.関数の割り当てを行い、関数名の後ろにスペースがあることに注意します.
@Test
def testAppFunc(): Unit = {
/**
*
*/
def sum(a: Int, b: Int, c: Int): Int = {
a + b + c
}
println(sum(1, 2, 3))
//
val appFunc = sum(1, _: Int, _: Int)
println(appFunc(1, 2))
//
val appFunc1 = sum _
println(appFunc1(1, 2, 3))
}
出力結果
6
4
6
Curry化関数
Curry化関数とは、複数のパラメータリストがあり、各パラメータリストに1つのパラメータしか含まれていない関数を指します.
@Test
def testCurry(): Unit ={
def multi(x:Int)(y:Int): Int ={
x*y
}
println(multi(3)(8))
//
val curryFuc=multi(3)_
println(curryFuc(8))
//
val curryFuc1=multi _
println(curryFuc1(3)(8))
}
出力結果
24
24
24