2013-06-10 3 views
5

、以下のオブジェクトdefinintionさえずりScalaの学校で

object addOne extends Function1[Int, Int] { 
    def apply(m: Int): Int = m + 1 
} 

があり、私は完全に[のIntを理解していないhttp://twitter.github.io/scala_school/basics2.html "基本つづく" "...は、機能1 [INT、INT]が伸びます" Int]型パラメータ化。私たちがFunction1を拡張するとき、私は単一の引数を取る申請があると宣言していると信じています。 なぜ私の申請が1つのInt引数だけを取るように構築されている場合、Function1 [Int、Int]

説明してください。

+2

はあなたにもうん '拡張(のInt => INT)' – 4lex1v

+0

を書くことができます注意してください。私は今それを見る。その構文は、魔法をより明確にします。 –

答えて

10

返品の種類です。 Function1[Int, Int]Int => Intと同じです。 1つはIntで、1つはIntです。

私たちは、このような単純化されたscala.Function1書くことができます:側として

trait Function1[T1, R]{ 
    def apply(v1: T1): R 
} 
+0

+1また、適用のシグネチャが実際にInt引数(m)を受け取り、Intを返す方法を指摘します –

+0

ええ、私は編集しました。 – Infinity

+0

ああ、私はそれを得る。 Function2 [Int、Int、Double]はdef適用(v1:Int、v2:Int):Doubleなどとなります。 –

関連する問題