2017-01-13 6 views
0

簡単な質問ですが、Googleから回答を得ることができません。私は過去に、case classがあなたに与えるさまざまなことをオプトインできるようにマクロを書いたことを見てきましたが、caseキーワードの代わりにに@dataマクロ注釈を追加すると得られます。どのようなプロジェクトですか?@dataマクロはどのScalaプロジェクトで提供されていますか?

+1

私はScala gitterチャンネルに行き、そこでこの質問をします。あなたがオフサイトのリソースを見つけるように誰かに依頼しているので、それは話題にはなりません。 – wheaties

答えて

0

私はそれがわからない@data class。そして、私はそれをする人を想像することはできません、ケースクラス以上の利点はありません。あなたはより多く入力する必要があり、私はあなたが(それはJavaに意図されていますが、おそらく、Scalaの上で使用することができます)ロンボクを投影する参照していると思いますいくつかのlib

上でネイティブ実装で、より信頼う:https://projectlombok.org/features/Data.html

はまた、Kotlinは、代わりにcase classdata classがあります:https://kotlinlang.org/docs/reference/data-classes.html

+0

考え方は、 'case'キーワードの" take it or leave it "アプローチではなく、' case class'のどの機能を選択するかということです。たとえば、デフォルトの 'apply'が必要ない場合に便利ですが、残りの動作が必要な場合などです。 – acjay

1

私は、これはScalaのマクロに関するワークショップの一環だったと思います。 Scalaの世界2016トーク

行使材料「Scalaのコンパイラプラグインのリターン」

https://github.com/fommil/scala-compiler-plugin

このプロジェクトは含まれてい@dataいくつかの保留とサム・ハリディによって書かれたケースクラスを、シミュレートするマクロEugene Burmakoによるプルリクエスト

関連する問題