問題タブ [scala]
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 - Agent / Actor ベースの並行設計の設計パターン
最近、私はアクター/エージェント/シェアード ナッシング アーキテクチャをサポートする代替言語に取り掛かっています。scala、clojure など (clojure は共有状態もサポートしています)。
これまでに読んだドキュメンテーションのほとんどは、イントロ レベルに焦点を当てています。私が探しているのは、4 つのギャングに沿ったより高度なドキュメントですが、代わりに何も共有されていません。
なんで ?デザイン思考の変化を理解するのに役立ちます。単純な例は簡単ですが、実際の Java アプリケーション (シングル スレッド) では、複雑な関係を持つ数千のメンバーを持つオブジェクト グラフを作成できます。しかし、エージェント ベースの同時実行開発では、大規模なシステムを設計するときに理解すべきまったく新しい一連のアイデアが導入されます。すなわち。エージェントの粒度 - 1 つのエージェントが管理する状態の量 - パフォーマンスなどへの影響、または共有状態オブジェクト グラフをエージェント ベースのシステムにマッピングするための適切なパターンです。ドメイン モデルを設計にマッピングするためのヒント。技術についてではなく、設計で技術を最大限に活用する方法についての議論 (現実世界の「複雑な」例は素晴らしいでしょう)。
scala - Scala でのタプル型のアンパック
Scala でタプル型をそのコンポーネントの型に分解できますか?
つまり、このようなもの
scala - Scala: サブリストの述語を使用してリストを分割する
リストをn個のサブリストに分割する必要があるユースケースがありました。これにより、元のリストから要素が順番に取得され、サブリストの述語が真である間にグループ化されます(偽の場合、新しいサブリストが開始されます) . この機能は標準ライブラリにはありませんでした。関数型スタイルで解決するのは良い練習になると思いました (私は関数型の第一人者ではありません)。
以下は私が思いついたコードです。しかし、私はそれが大幅に改善される可能性があると思います. これをコーディングするためのより良い方法を見つけるのを手伝ってもらえますか?
サンプルの結果は次のとおりです。
scala - Scalaの「仕様」BDDフレームワークはどのように機能しますか?
私は Scala を使い始めたばかりで、どの言語機能でこれを行うことができるのか疑問に思っています。
これは、 Kestrel の単体テストからのものです。
何が起きてる?Scala 文字列クラスが "should" メソッドで拡張されたということですか"PersistentQueue" should
、それともここで何か他のことが起こっているのでしょうか? Scala のドキュメントをざっと見ましたが、このコード サンプルでどの言語機能が使用されているかわかりませんでした。
oop - Scala でコンパニオン オブジェクトを使用する理由は何ですか?
クラスのコンパニオン オブジェクト (シングルトン) が必要な場合はありますか? Foo
クラスを作成し、そのコンパニオン オブジェクトも作成する必要があるのはなぜでしょうか。
java - Scala プログラミング言語をどのプロジェクトで使用する予定ですか?
あなたのプロジェクトで Scala を使用しているのをどこで見ましたか?
web-services - Lift Web フレームワークがスケーラブルなのはなぜですか?
Lift ウェブフレームワークが高いパフォーマンスとスケーラビリティを備えている技術的な理由を知りたいですか? アクター ライブラリを持つ scala を使用していることは知っていますが、インストール手順によると、デフォルトの構成は jetty です。アクター ライブラリを使用してスケーリングするのでしょうか。
今では、箱から出してすぐに構築されたスケーラビリティです。サーバーとノードを追加するだけで、自動的にスケーリングされます。サポートするサーバーとの 500000 以上の同時接続を処理できますか。
私はエンタープライズ レベルの Web サービス フレームワークを作成しようとしています。これは既存のものよりも優れており、スケーリング、構成、および保守が容易です。私のスケーリングの定義は、サーバーを追加することであり、余分な負荷に対応できるはずです。
ありがとう
java - Scalaの変数宣言の一般的なワイルドカード
Javaではこれを行うかもしれません:
MyImpl implements MyInterface
...もちろん()と仮定します。
Scalaでこれを使用する場合のアナログは何Buffer
ですか?
これは(もちろん)コンパイルされませんが、どのようにすると、そのlist
ように変数を宣言できますか?
編集; もう少し追加します。違いは明らかに、JavaではジェネリックはTで共変ではないのに対し、Scalaでは共変であるかどうかに関係しているという事実と関係があります。たとえば、ScalaクラスList
はTで共変です(そして必然的に不変です)。したがって、以下がコンパイルされます。
私はまだコンパイラエラーに少し苦労しています:
Covariant type T occurs in contravariant position in ...
例えば; このコンパイラエラーは、クラス宣言で発生します。
別の質問をします...
generics - 例がコンパイルされないのはなぜですか、別名 (co-、contra-、および in-) 分散はどのように機能するのでしょうか?
この質問に続いて、誰かがScalaで次のことを説明できますか:
+T
型宣言におけるとの違いを理解してT
います ( を使用するとコンパイルされますT
)。しかし、それでは、パラメータ化されていないものを作成することに頼らずに、型パラメータが共変であるクラスを実際にどのように作成するのでしょうか? 次のものを のインスタンスでのみ作成できるようにするにはどうすればよいT
ですか?
編集-これを次のようにしました:
これで問題ありませんが、必要な型パラメーターは 1 つだけですが、2 つの型パラメーターができました。次のように再質問します。
型が共変である不変 Slot
クラスを作成するにはどうすればよいですか?
編集2:当たり前!私は使用var
していませんでしval
た。以下は私が欲しかったものです: