問題タブ [scala-2.10]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
284 参照

scala - scala 2.10 AST 内の検索

scala 2.10 ASTで要素を再帰的に検索する最良の方法は何ですか?

power.trees(code)木は、またはmirror.mkToolBox().parseExpr(code) 編集の結果である可能性があります。2.10.0-RC1parseExprでは、名前が に変更されましたparse

私が持っている具体的なユースケースは、メソッド名で特定のクラス/オブジェクトコードからメソッドのコードを抽出することですが、より一般的な方法で定式化された場合、質問は他の人にとってより関連性があると思います.

0 投票する
1 に答える
1643 参照

scala - Scala 2.10 リフレクションが参照する実際のオブジェクトを取得するにはどうすればよいですか?

このコードを検討してください:

Symbol次のように、このオブジェクトへの参照を取得できます。

さて、このシンボルを持って、どうすれば実際のResponseTypeオブジェクトを取得できますか?

0 投票する
3 に答える
3401 参照

scala - Scala 2.10 リフレクションを使用して Enumeration の値を一覧表示するにはどうすればよいですか?

次の列挙を持つ

その値のリストを取得するにはどうすればよいですか?

0 投票する
1 に答える
172 参照

scala - マクロはクラス本体を取り、明示的な新しい演算子を排除しますか?

私はnewScala の演算子、特に DSL の演算子が好きではありませんでした。なし でオブジェクトを構築するための回避策newは、通常、非常に醜いものです。たとえば、 をインポートscala.actors.Actor._するとactor { ... }、 がありますが、本体内では にアクセスできないthis: Actorため、そのオブジェクトにはreceivereactself、 などのあらゆる種類の疑似インスタンス メソッドもあります。

Scala 2.10 マクロを使用すると、次のように動作する可能性があるのだろうか?

追加の課題として、 が の場合doSomethingはどうなりprotectedますか?

0 投票する
1 に答える
75028 参照

scala - TypeTag とは何ですか? どのように使用しますか?

TypeTags について私が知っているのは、それらがどういうわけかマニフェストを置き換えたということだけです。インターネット上の情報は少なく、私にはこの主題についての良い感覚が得られません。

ですから、例や一般的な使用例など、TypeTags に関する有用な資料へのリンクを共有していただければ幸いです。詳細な回答と説明も大歓迎です。

0 投票する
1 に答える
457 参照

scala - scala 2.10 で 1 回のマクロ呼び出しで複数のトップレベル クラスを生成することは可能ですか?

私はボイラープレートがたくさんあるプログラムを持っています (残念ながら、Scala のメカニズムでも削減できません)。しかし、マクロを使用して複雑なトップレベル クラスを生成する方法があれば、定型文はすべてなくなります。例えば:

Scala 2.10 マクロで可能ですか?

0 投票する
2 に答える
149 参照

scala - reify のマクロ展開中の StackOverflowError

reify を使用する簡単なテスト マクロがあります。マクロ展開時に StackOverflowError が発生します。

なぜこれが起こるのですか?どうにか回避できないでしょうか?

編集: これは M6 で起こることです。M7で試してみたところ、次のように表示されます

実装制限: 型 Object{def (): O.type} (ClassInfoType) を具体化できません

これで理由の質問に答えましたが、これを回避する方法があるかどうかという質問はまだ残っています。

0 投票する
1 に答える
1398 参照

scala - Scala 2.10 でアノテーションを反映するには?

特性の値に関連付けられた注釈があるかどうかを調べようとしています。Scala 2.10-M7 リフレクション API を確認した後、getAnnotationsメソッド ( Symbolにあります) が有力な候補になると思いましたが、次の REPL セッションに示されているように、空のリストを返しています。

それらの「注釈」は、私が対処しようとしているのと同じ注釈ですか? aにWの注釈が付けられているかどうかを知るにはどうすればよいですか?

0 投票する
3 に答える
2084 参照

scala - scala 2.10 の Option.fold

scala 2.10.0-M7 を使用した次のセッションでは:

私は、コンパイラが不平を言うのではなく、共通のスーパータイプ (つまり A) を見つけることを期待しています。それは一般的な型推論の制限ですか、それとも Option.fold の定義方法の結果ですか?

ありがとうございました。

0 投票する
1 に答える
364 参照

scala - Scala 2.10 リフレクション: ClassSymbol.isCaseClass は scala コンソールでは機能しますが、スクリプト/アプリでは機能しません

私は Scala 2.10.0-M7 でリフレクションをいじっていてClassSymbol.isCaseClass、scala コンソールで期待どおりに動作するメソッドに出くわしましたが、Java アプリケーションまたは scala スクリプトとして実行された場合はそうではありません。

私は次TestScript.scalaのように定義しました:

コマンドライン呼び出しで実行すると

私はこの出力を得る:

代わりに、インタラクティブな scala シェルにコードを入力するか、次のようにロードすると:

次の正しい出力が得られます。

それをコンパイルして標準のJavaアプリとして実行すると、再びfalse結果が得られClassSymbol.isCaseます。

私は何が欠けていますか?scala コンソール環境と Java ランタイム環境の違いは何ですか? 実際のアプリケーションで正しい結果を得るにはどうすればよいですか?