問題タブ [scala-2.8]
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 - 両方によってオーバーライドされる3番目のメンバーなしでコンクリートメンバーをオーバーライドすることはできません
次のエラーメッセージはどういう意味ですか?
両方によってオーバーライドされる3番目のメンバーなしで具象メンバーをオーバーライドすることはできません(このルールは、「偶発的なオーバーライド」を防ぐように設計されています);
私は積み重ね可能な特性の変更を行おうとしていました。私はすでに階層を設定していて、多くのコードを書き直さなくても動作を変更しようとしているので、事後少しです。
次のような抽象メソッドを定義するAbstractProcessorという基本クラスがあります。
さまざまなonPush動作を実装するために、いくつかの既存の特性があります。
new AbstractProcessor with Pass1
だから私はまたはを使用することができますnew AbstractProcessor with Pass2
。
ここで、AbstractProcessorとPass1およびPass2へのコード変更を最小限に抑えながら、Pass1およびPass2でのonPush呼び出しの前後にいくつかの処理を実行したいと思います。私はこのようなことをする特性を作成することを考えました:
そしてそれを一緒に使用するとnew AbstractProcessor with Pass1 with Custom
、そのエラーメッセージが表示されました。
ide - Scala 2.8 の IDE は?
古いバージョンの Scala についても同じ質問ですが、Eclipse プラグインは大幅に改善されているとのことです。それは今最高の IDE ですか? 現在のさまざまな Scala IDE はどのように比較されますか?
generics - 2.7 での Scala Type Failure: 回避策はありますか?
のキータイプとしてパラメーター化されたクラスを使用する際に問題がありますMap
。まず、パラメーター化されたクラスを作成します。
次に、未知のパラメーター全体でこれらの架空のコレクションを作成します。
次に、これらを格納するマップを作成します。
ここで、マップへの入力を試みます
次のコンパイラ エラーが表示されます。
これは 2.8 で問題なくコンパイルされます。これを 2.7 で動作させるための回避策はありますか?
編集- これも私のために働いた:
scala - 継続に関するヘルプが必要-エラー「非cps位置にcps式が見つかりました」
Scala2.8Continuations-PlugInを使用して次の単純なジェネレーターを構築してみます。次のエラーはどこから発生しますか?
コード:
reflection - リフレクションを介してフィールドの値にアクセスする方法 (Scala 2.8)
次のコードを検討してください。
ここで、リフレクションを介して値とその正しい型を取得しようとします:
field.get(foo) などを試しましたが、java.lang.Object を返すだけで文字列は返しません。メソッドを呼び出したいので、基本的に正しい型が必要です (toCharArray など)。
それを行うための推奨される方法は何ですか?
scala - Scala 2.8 の classOf[] は 2.7 とは異なりますか?
私はJavaからのインターフェースを持っています
Scalaに継承されている
Scala 2.7.7 で動作しました。しかし、2.8.0.RC1 では、
java.lang.Class
Scala 2.8に入るにはどうすればよいですか?
scala - Scala:デフォルトのケースクラスコンストラクターをオーバーライドすることは可能ですか?
これが可能かどうかは疑問です。私が実際にやりたいことは、val として格納される前に引数の 1 つをチェックして、場合によっては変更することです。
または、オーバーロードを使用して、既定のコンストラクターを非公開にすることもできます。その場合、コンパニオン オブジェクトのデフォルト ファクトリ コンストラクタもプライベートにしたいのですが、どうすればよいでしょうか?
どうもありがとう。
アダム
編集:デフォルトのコンストラクターをプライベートにすると、デフォルトのファクトリーコンストラクターもプライベートになることがわかったので、解決策がありますが、デフォルトのコンストラクターがオーバーライド可能かどうかを知りたいと思っています
reflection - java.lang.reflect.Method を Scala 関数に変換する簡単な (慣用的な) 方法はありますか?
リフレクションを介してメソッドを取得し、何らかの方法でそれをターゲット オブジェクトと組み合わせて、Scala の関数のように見えるものとして返すことはできますか (つまり、括弧を使用して呼び出すことができます)? 引数リストは可変です。「ファーストクラス」の関数である必要はありません (質問を更新しました)。f(args) など、構文的に見える関数呼び出しだけです。
これまでの私の試みは次のようになります (これは技術的には疑似コードであり、追加の定義で投稿が混乱するのを避けるためです):
上記により、コンパイラ エラーを回避できましたが、実行時例外が発生しました。
使用例は次のようなものです。
アップデート
args:Any* を args:AnyRef* に変更すると、実行時の問題が実際に修正されたので、上記のアプローチ (修正を含む) は、私が達成しようとしていたことに対してうまく機能します。ここで可変引数に関するより一般的な問題に遭遇したと思います。
scala - Scalaで文字列「+」演算子をインポート解除するには?
他の一般的な言語と同様に、「+」演算子が厳密に数値である DSL を作成しています。近いですが、文字列 "+" 演算子が暗黙の変換を台無しにしています。String クラスの演算子をアンインポートするための構文は何ですか?
より明確にするために、これの代わりに:
x を取得したい: Int = 5
それを実現するには、2つのことが必要だと思います。
- 文字列から「+」の定義を削除(私のスコープ内でアンインポート)します
- String から Int への暗黙的な変換を定義する
私は最初のステップで立ち往生しています。
ありがとう
scala - CPS クラスの Seq[T] の実装
CPS コンテキスト (@cps[Unit]) にある次のクラスを使用すると、Seq 特性をどのように実装できますか? Seq のような標準的な特性を脇に置き、cps-context で map、flatmap、および foreach を実装する必要がありますか?