0

Scala で定義された関数を実行するより慣用的な方法はありますか? 次の定義よりもFunction1すぐに実行できるのでしょうか?

scala> (new Function1[Int, Int] { def apply(v1: Int) = v1 }) (5)
res0: Int = 5

そのような呼び出しを正当化するユースケースはありますか? 私は何も持っていませんが、それについて尋ねられた後、興味を持ち、調べるのに役立つかもしれないと思いました.

4

1 に答える 1

5

Scala には無名関数の簡潔な構文があります (すぐに呼び出すことができます)。

((x: Int, y: Int) => x + y)(4, 5)

このようなインスタント呼び出しで私が認識している唯一の使用例は、別の言語 (JavaScript) からのもので、スコーピングに頻繁に使用されます。しかし、Scala では、次のように中かっこでスコープを定義できます。

{
    val a = 5
}
{
    val b = 4
    // a not accessible here
}

そのため、そのような構成が Scala で役立つユース ケースは見当たりません。

于 2013-10-26T12:39:59.797 に答える