問題タブ [scalap]

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 に答える
601 参照

scala - scala スクリプトから scalap を使用することは可能ですか?

scalapいくつかのケース クラスのフィールド名を読み上げるために使用しています (この質問で説明されているように)。ケースクラスとそれらを分析するために使用するコードの両方scalapがコンパイルされ、クラスパス上の jar ファイルに配置されています。

今、このコードを使用するスクリプトを実行したいので、指示に従って次のようなものを思いつきました

これは機能しません:

java.lang.ClassCastException: scala.None$ は scala.tools.nsc.interpreter.ByteCode$.caseParamNamesForPath(ByteCode. scala:45) で scala.Option にキャストできません。scala.tools.nsc.interpreter.ProductCompletion.caseNames( ProductCompletion.scala:22)

ただし、すべてをコンパイルすると、コードは正常に機能します。のような追加scalaのオプションを試してみ-savecompiledましたが、これは役に立ちませんでした。これはバグですか、それとも原則として機能しませんか? (もしそうなら、誰かが理由を説明できますか?私が言ったように、分析されるケースクラスscalapはコンパイルされます。)

注: Scala 2.9.1-1 を使用しています。

編集

これが私が本質的にやろうとしていることです(ケースクラスの複数のインスタンスを作成する簡単な方法を提供します):

注: Scala 2.9.2 に移行しましたが、エラーは同じままです (おそらくバグではありません)。

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

scala - 実行時に Scala コンパイラが必要なのはなぜですか? (Scalap 依存の Play2/Salat)

Scala / Mongo / Casbah / Salat / Play2 を使用していますが、Salat を使用しようとすると、Scalap に依存しているようです。

アプリケーションを実行すると正常に動作しますplay runplay start、次のスタックを取得します。

scala/tools/nsc/util/ClassPath$JavaContextScalaコンパイラプロジェクトにあるので、SBT依存関係を追加しました:

今でもうまく動作しplay startます。

しかし、実行時に scala コンパイラーに依存してプロジェクトを実行しなければならないのは普通ですか? play runまた、scala コンパイラに依存 しなくても機能するのはなぜですか? 本番モードで実行されていない場合、自動的に組み込まれますか?

ありがとう