30分探しましたが、まだわかりません。
SIP: Modularizing Language Featuresには、Scala 2.10 で明示的に「有効化」する必要がある多くの機能があります ( import language.feature
)。その中には がありpostfixOps
、どこにも参照が見つかりません。この機能は正確に何を可能にしますか?
30分探しましたが、まだわかりません。
SIP: Modularizing Language Featuresには、Scala 2.10 で明示的に「有効化」する必要がある多くの機能があります ( import language.feature
)。その中には がありpostfixOps
、どこにも参照が見つかりません。この機能は正確に何を可能にしますか?
後置位置で演算子構文を使用できます。例えば
List(1,2,3) tail
それよりも
List(1,2,3).tail
この無害な例では問題にはなりませんが、あいまいさが生じる可能性があります。これはコンパイルされません:
val appender:List[Int] => List[Int] = List(1,2,3) ::: //add ; here
List(3,4,5).foreach {println}
そして、エラーメッセージはあまり役に立ちません:
value ::: is not a member of Unit
タイプ:::
の呼び出しの結果でメソッドを呼び出そうとします。これは、プログラマーが意図したものではない可能性があります。正しい結果を得るには、最初の行の後にセミコロンを挿入する必要があります。foreach
Unit
これは、後置演算子として nullary (引数リストまたは空の引数リストなし) メソッドを呼び出す機能を指します。
例:
case class MyBool(value: Boolean) {
def negated = new MyBool(!value)
}
val b1 = MyBool( true )
val b2 = b1 negated // Same as b1.negated