問題タブ [scalac]
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.
scala - Scala Dynamic トレイトのメソッド解決に干渉するフィールド?
Dynamic Scala ランドへの最初の進出として、applyDynamic を介して Bean プロパティにアクセスしようと考えました。
私の最初の非常にラフなカットは
となることによって
ここまでは順調ですね!でもやってみると
コンパイラは、メソッドを合成するのではなく、background という名前のフィールドへのアクセスを許可しようとして、不平を言います。
これは設計によるものですか、見落としですか、それとも修正が予定されているものですか?
java - Fast Scalaコンパイラのリモートサーバーを実行するにはどうすればよいですか?
リモートでアクセスできるボックスで実行されるfscプロセスを設定したいと思います。
一時ディレクトリを共有する必要があることを理解しています。
しかし、私はそれを私のラップトップで実行することさえ苦労しています。
私はしようとしています:
しかし、それは私に使用オプションを与えるだけです...
ヘルプ?
scala - Scala Range contains(elem: Any) メソッド
AnyRange
型の値が含まれているかどうかを確認するメソッドがあるようです。からのものであることは理解していますがSeqLike
、いくつかの問題が発生します。
たとえば、私は joda.DateTime から時間を一致させていました:
ここで d.hourOfDay() は Int ではなく DateTime.Property を返しますが、contains(elem: Any)
. コンパイル時にそのような呼び出しをチェックする方法はありますか?
scala - Emma/Antを使用したラインレベルのScalaカバレッジレポート
Emmaを使用してScalaコードでラインレベルカバレッジレポートを機能させるために使用する必要のあるトリックはありますか?Javaコードで問題なく動作させることができますが、scalacを使用すると、何らかの理由でデバッグ情報がクラスファイルに反映されません。
どんな助けでもいただければ幸いです。
scala - scalac コードのシバン
scala インタープリターはシバンを許可しますが、奇妙なことに、scalac はそれらに対して borks します。この欠陥を回避するためのこのようなトリックはありますか?
scala - Scalaで型クラスパターンを使用することによるパフォーマンスへの影響は何ですか
私は現在、コードのパフォーマンスに関連する部分として、型クラスのパターンを多用しています。私は少なくとも2つの潜在的な非効率の原因を突き止めました。
暗黙的なパラメータは、メッセージ呼び出しに沿って渡されます。これが本当に起こるかどうかはわかりません。たぶん、scalacは、それらが使用されている場所に暗黙のパラメーターを挿入し、メソッドシグネチャからそれらを削除することができます。暗黙的なパラメータを手動で挿入する場合、実行時にのみ解決される可能性があるため、これはおそらく不可能です。暗黙のパラメータの受け渡しに関してどのような最適化が適用されますか?
型クラスインスタンスが
def
(とは対照的にval
)によって提供される場合、「型クラス化されたメソッド」を呼び出すたびにオブジェクトを再作成する必要があります。この問題は、オブジェクトの作成を最適化する可能性のあるJVMによって解決される可能性があります。この問題は、これらのオブジェクトを再利用することでscalacによって解決される可能性もあります。暗黙のパラメータオブジェクトの作成に関してどのような最適化が適用されますか?
そしてもちろん、型クラスパターンを適用するときに非効率の追加の原因があるかもしれません。それらについて教えてください。
scala - Scala スクリプトのコンパイル。Scala スクリプトはどのように機能しますか?
グルーヴィー
Groovy には というコンパイラが付属していgroovyc
ます。スクリプトごとに、 Java が実行できるように main メソッドを含むgroovyc
を拡張するクラスを生成します。groovy.lang.Script
コンパイルされたクラスの名前は、コンパイルされるスクリプトの名前と一致します。
たとえば、次のHelloWorld.groovy
スクリプトを使用します。
それは次のコードのようになります。
スカラ
Scala には というコンパイラが付属していscalac
ます。
たとえば、同じHelloWorld.scala
スクリプトを使用すると、次のようになります。
scalac
コンパイラはクラスまたはオブジェクトの定義を予期していましたが、Scala REPL インタープリターで機能するため、コードは に対して有効ではありません。どのように可能ですか?実行前にクラスにラップされていますか?
scala - Scala のコンパイラが「-print」オプションで Scala 固有の機能を表示するのはなぜですか?
Scala コンパイラ (2.9.2) のヘルプ メニューには、
ただし、-print
オプションを指定した次の呼び出しは、Scala 固有の機能を示しています。
特性がまだ表示されているのはなぜですか? 純粋な Java コードを期待していたでしょう。
scala - Scala Compiler Plugin でのネイティブ ライブラリのロード
scala コンパイラ プラグインを開発しています。コンパイラ プラグインは、「refcheck」フェーズの後に実行されます。AST (抽象構文ツリー) を分析し、いくつかの出力を生成します。このプラグインでは、次を使用してネイティブ ライブラリ「scalaz3.dll」をロードしています。System.loadLibrary
コンパイラ プラグインを Eclipse Scala IDE で使用する予定です。-XPlugin
ScalaIde プリファレンスでパラメーターを設定します。Eclipse で scala ソース ファイルをコンパイルすると、refchecks
フェーズの後にプラグインが呼び出され、正常に動作します (目的の出力が生成されます)。
ただし、ソース ファイルに変更を加えてコンパイルすると、次のエラーが発生します。
ScalaIDE が別のクラスローダーを生成し、同じプロセスでプラグイン クラスをロードしようとしているようです。
コンパイラ プラグインのテスト ケースで同じ問題に直面していました。ただし、で使用して修正しfork in Test := true
ましたbuild.sbt
。しかし、Eclipse scala IDEで修正する方法についてはわかりません。
関連する投稿をいくつか紹介します (ただし、Eclipse scala ide とは関係ありません)。
java - ScalaはJavaスタイルのパッケージステートメントをどのように処理しますか
これは恥ずかしいですね。私の目的は、ScalaがJavaスタイルで書かれたパッケージステートメントをどのように扱うかを理解することです。この目的のために、私は小さなサンプルクラスを作成しました(以下のようにDinnerTimeP.scalaという名前を付けました:
私はscaladevというフォルダーを持っており、その下にパッケージフォルダーdinnertimeを作成しました。このパッケージの下にはDinnerTimeP.scalaがあります。次に、DOSコマンドでdinnertimeに移動し、DinnerTimePファイル(名前はばかげているように聞こえます)を以下のようにscalacでコンパイルします。
私は、dinnertimeフォルダーのすぐ下に生成されたDinner.classを見つけ、ソースファイルDinnerTimeP.scalaの隣に座っていることを望んでいました。理解を確認するために、同じフォルダーの下にHelloWorld.javaプログラムを作成しました。
}
コマンドラインでHelloWorld.javaを次のようにコンパイルしました:C:\ scala-2.9.1.final \ scala-2.9.1.final \ scaladev \dinnertime> javac HelloWorld.java
HelloWorld.classファイルは、そのソースファイルのすぐ隣に生成されました。これは、Scalaソースファイルとそのコンパイル済みファイルで見たかった正確な状況でした。代わりに、パッケージフォルダーdinnertime内にScalaによって生成された新しいパッケージフォルダーが表示されます。
これはナイーブかもしれません。私はおそらくScalaとパッケージの基本的な理解を裏切っていますが、この振る舞いに戸惑いました。これは私が自分自身に説明できない問題です。新しく生成されたクラスファイル用にネストされたパッケージが作成されるのはなぜですか。これは、私自身の真摯な努力に基づいて解決したいと思っていた問題です。現時点でのScalaの経験は限られているため、何が起こっているのかを理解するために、stackoverflowでScalaの達人に尋ねることに頼りました。なぜ?このネストされたパッケージがJavaではなくScalaによって作成される理由はありますか?