で行われているのと同様の方法で、特別なコンパイラ処理で にif … else実装できたのではないかと思っています。定義は にあり、実装はコンパイラによって埋められます。PredefclassOf[A]Predef
確かに、コンテキストに関係なく、は常にであり、はif常にであると知っていると安心する人が多いでしょう。ただし、結果の型のメソッドとして定義すると、キーワードのリストから削除され、ライブラリ設計者が独自のメソッドを定義できるようになります。(バックティックを使用して任意のキーワードを識別子として使用できることは知っていますが、コードではひどいように見えます。)このような方法は、メーリングリストで議論されているこのような状況で議論する場合に役立ちます。実際に名前を付ける必要があるメソッドを定義するときに使用します。( SO hereおよびhereについても説明されていますifelseelseelseifelse`else`otherwiseelse.)
そう:
- そのようなアプローチは理論上でも可能でしょうか? それとも、Scala の基本的な原則を破りますか?
- 欠点は何ですか?