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