Scalaによる演算子の優先順位の提案は気に入っていますが、メソッドの名前付けに制限があるため、変更されていないルールが不便な場合があります。 Scalaでクラス/ファイルなどに別のルールを定義する方法はありますか?そうでない場合、それは将来的に解決されますか?
演算子の優先順位は、演算子の最初の文字によって Scalaリファレンス-6.12.3中置演算 で修正されています。優先順位の高い順にリストされています。
(all letters)
|
^
&
= !
< >
:
+ -
* / %
(all other special characters)
そして、それが変わる可能性はあまりありません。それはおそらくそれが修正するより多くの問題を作成します。通常の演算子の優先順位を使用している場合、1つのクラスでそれを変更するとかなり混乱します。
Scalaでクラス/ファイルなどに別のルールを定義する方法はありますか?そうでない場合、それは将来的に解決されますか?
そのような能力はなく、予見可能な将来に追加される可能性はほとんどありません。
機能リクエストtypelevel fork of the scala compiler で発生しました。これは、実験的機能を「プレビュー」するコンパイラのバージョンです。開発者は、誰かが [〜#〜] sip [〜#〜] と書いた場合、実装を検討するよう提案しました。
しかし、現在の状態では、優先順位を上書きする方法はありません。ルールは 言語仕様 で正式に定義されています。
メソッドの命名に制限があるため、変更されていないルールは不便かもしれません
「Rational」クラスの例については、本の第6章 http://www.scala-lang.org/docu/files/ScalaByExample.pdf を参照してください。