2016-06-21 6 views

答えて

3

は「ショートカット」演算子の定義です:オペレータはコロンで終わる場合

def /:[B](z: B)(op: (B, A) => B): B = foldLeft(z)(op) 

、それは右結合です。 1 :: Nilは別の例で、Int

に何の方法::このすべての作品はありません。

  • (1 to 5)./:(10)(_ + _)
  • ((1 to 5) foldLeft 10)(_ + _)(あなたの例、 とほぼ同じですが、ここではfoldLeftが実際にあることがより明白ですメソッド 範囲オブジェクト)
  • (1 to 5).foldLeft(10)(_ + _)
+0

::メソッドではありません適用し、適用しないメソッドを持つオブジェクト –

+0

本当ですか? http://www.scala-lang.org/api/current/index.html#[email protected]::(x:A):List[A] –

+0

我々は両方とも正しいです、ここには'::' case class(=>(un)apply):http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.$colon$colon –

0

あなたの質問は完全には明確ではありません(あなたの式にはnはありません)。ただし、コロンで終わる演算子は、左側ではなく右側の引数のメソッドとして解釈されます。あなたの表現は/:

(1 to 5)./:(10)(_ + _) 

に相当し、より明確に左のRangeオブジェクトのメソッドであることを見られています。ここで

関連する問題