問題タブ [traits]
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 トレイトと C++ の概念の違い
Scala traits Haskell type classとC++0x Conceptsの違いは何ですか?
以下の例のように、オブザーバーが抽象メンバー receiveUpdate を宣言する場合、オブザーバーは実際には「匿名」型または構造型です。
scala - アルゴリズムの混合
Iteratorを拡張し、複雑なアルゴリズム(MyAlgorithm1)をモデル化するクラスがあります。したがって、アルゴリズムはNextメソッドを段階的に進めることができます。
ここで、最初のアルゴリズムの各パスに異なるアルゴリズム(MyAlgorithm2)を適用します。アルゴリズム1と2の反復を挿入する必要があります
どうすればこれを最善の方法で行うことができますか?おそらくいくつかの特性がありますか?
アップデート:
MyAlgorithm2はセットを受け取り、それを変換します。MyAlgorithm1もありますが、これはより複雑であり、段階的に実行する必要があります。アイデアは、MyAlgoirthm1の1つのステップを実行してから、MyAlgorithm2を実行します。次のステップも同じです。実際、MyAlgorithm2はセットを単純化し、MyAlgorithm1の作業を単純化するのに役立つ場合があります。
scala - 特性に関する質問
次の2つの違いは何ですか?
1#
2#
ここA
で、は抽象クラスです。
>>編集:
Duck
プラグ可能な飛行およびクワッキング動作を伴う次の例について説明してください。
出力:
私は飛ぶことができます!:D
<<沈黙>>
c++ - C++ ブースト テンプレート パラメーターの特徴
テンプレート テンプレート パラメーターを回復するマクロをブーストで見たことがあると思います。たとえば、次のようになります。
このようなものはありますか、それとも間違っていますか?
ありがとうございました
scala - 特性、一貫性のないコンパイラの動作を使用して抽象メソッドを実装しますか?
Javaライブラリからの基本クラスがありますが、そのコードは変更できません。このクラス(A)には空のメソッド(b)があり、代わりに抽象として宣言する必要があります。
このクラスをScalaで拡張し、メソッドをオーバーライドして抽象化します。
今、私はこのメソッドをトレイトに実装します:
特性BでAAを拡張すると、エラーが発生します。タイプ=>ユニットのクラスAのメソッドbをオーバーライドします。タイプ=>の特性Bのメソッドbには、「オーバーライド」修飾子が必要です。
代わりに、コードがこのようであった場合、すべてがエラーなしでコンパイルされます。これは私には少し矛盾しているようです。
私はScala2.8.0RC3を実行していて、この言語にまったく慣れていません(3日)。もう1つの奇妙で関連する動作は、bを抽象化するときにオーバーライドラベルが不要なことです。
smalltalk - Traits では、T プレフィックスを使用する必要がありますか? はいの場合、他のプレフィックスの前後に配置しますか?
Pharo+Squeak で Traits を作成する場合、TMyTrait のような T 接頭辞を使用するのは適切ですか? はいの場合、T は TMPMyTrait のような他の接頭辞の前 ("MP" は他の接頭辞です) または MPTMyTrait のように後に配置する必要がありますか?
smalltalk - 特性は良いか悪いか?
これは自由回答形式の質問ですが、特性に関する SO コミュニティから意見を求めたいと思います。Squeak/Pharo の Traits は良いことだと思いますか?それとも、それらを避けて代わりに構成と委譲を使用する必要がありますか? 私はそれらを使用する方法を知っていますが (Pharo book のおかげで)、それらを使用することがどの程度受け入れられるか、または使用しても問題ない場所とそうでない場所についてはよくわかりません。
scala - scala のジェネリック メソッドでトレイトのインスタンスを作成するにはどうすればよいですか?
このメソッドを使用して特性のインスタンスを作成しようとしています
これはうまくいきますが、この作成をジェネレーター関数に移動したいと思います。
型消去の問題をどうにかして修正するためにマニフェストが必要なのは明らかですが、これに到達する前に、2 つの質問に出くわします。
暗黙のマニフェストがあっても、Scala は T がトレイトであることを要求します。T がトレイトになるように create[T] に制限を追加するにはどうすればよいですか?
"new" を使用するのではなく、Class.newInstance メソッドを使用してインスタンスを動的に作成することを選択した場合、"new Object with T" で "with" をどのように指定しますか? 実行時に新しい具体的な mixin タイプを動的に作成することは可能ですか?
python - Python:メタクラスはずっと下にあります
Pythonメタクラスに関する難解な質問があります。クライアント側のプロキシを介して任意のPythonクラスに簡単にアクセスできるようにするWebサーバー側のコード用のPythonパッケージを作成しています。プロキシ生成コードには、APIに含めたいすべてのPythonクラスのカタログが必要です。このカタログを作成するために、__metaclass__
特別な属性を使用して、クラス作成プロセスにフックを設定しています。具体的には、「公開された」APIのすべてのクラスは、クラスの作成に関する情報を記録するように設定された特定の基本クラスをサブクラスPythonDirectPublic
化します。__metaclass__
ここまでは順調ですね。複雑になるのは、自分PythonDirectPublic
自身をサードパーティのクラス()から継承させたいということですenthought.traits.api.HasTraits
。このサードパーティクラスもを使用し__metaclass__
ます。
では、2つのメタクラスを管理する正しい方法は何ですか?私のメタクラスはEnthoughtのメタクラスのサブクラスである必要がありますか?または、メタクラスのメソッド内でEnthoughtのメタクラスを呼び出して、__new__
返される型オブジェクトを取得する必要がありますか?または、この特定の状況で使用する他の神秘的な呪文はありますか?
scala - 工場で特性を使用する
私は現在scalaを発見していて、ファクトリでトレイトを使用できるかどうか疑問に思っていました。
私はこれを試しました:
with
の前に。が必要なためだと思いnew
ます。
それで、これを行う方法はありますか?
ありがとうございました