0

次のコードが ∙ を有効な中置演算子として認識しない理由を知っている人はいますか?

object Main extends App {
  val c = (I() ∙ I())
}

sealed abstract class Term 
case class I() extends Term
case class ∙(x: Term, y: Term) extends Term
4

3 に答える 3

6
于 2011-11-14T14:26:30.407 に答える
4

簡単に言えば、そうではないからです。これはobjectandですclassが、メソッドではありません。また、メソッドのみが演算子 (中置かどうかに関係なく) になることができます。

オブジェクトとして、パターン マッチで使用できます。

case a ∙ b =>

クラスとして、2 つの型パラメーターがある場合、型宣言でそれを使用します。

type X = Int ∙ String
于 2011-11-14T14:36:41.150 に答える
3
于 2011-11-14T14:45:51.883 に答える