問題タブ [implicit]
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 - 一般的な特性の暗黙の変換
私はデータ構造を実装しており、ユーザーがそれをラップする適切なキータイプを提供する限り、キーとして任意のタイプを使用できるようにしたいと考えています。このキータイプには特徴があります。アイデアは、ベースからキータイプへの暗黙の変換を行い、逆に(事実上)ベースタイプのみを使用することです。特性は次のようになります。
コールサイトコードは次のようになります。
計画では、タイプの値は、順序付けされたものK
に暗黙的に変換されるKey[K]
か、順序付けが暗黙的にKey[K]
使用される必要があるため、すべてがうまくいくはずです。もちろん、base2key
特性自体に暗黙的に実装する方法はありません。または、暗黙的に渡されたクラスマニフェストを使用している可能性がありますか?これを考慮した参考文献は見つかりませんでした。
Key[T]
拡張する型には暗黙の変換が伴うことをどういうわけか静的に主張することは可能T => Key[T]
ですか?悲しいことに、コンパニオンオブジェクトは抽象的なメソッドを持つことができません。
これがうまくいくと仮定すると、企業全体が実現可能ですか、それとも、述べられているユースケースには複数の連鎖された暗黙の変換が必要ですか?(私が読んだように、Chainingは起こりません。)
補遺:上記の定義では、を使用してNode(key : K, ...)
(下のK <% Key[K]
)シーケンスを並べ替えることができますが、を使用することはできsortWith(_.key <= _.key)
ませんsortBy(_.key)
。したがって、明らかに、からK
への変換Key[K]
は、私がどこにも宣言したことがない場合でも、暗黙的に発生Ordering
しますが、暗黙的に使用できるものはありませんKey[K]
。ここで何が起こっているのですか?
scala - 型クラスに関する質問
Field
次のように型クラスを定義する必要があります。
型クラスはNumeric
メソッドも提供しzero
ますone
。
Numeric
インスタンスを使用できるすべてのクラスを、インスタンスを持つクラスが必要な場所で使用できるようにしたいと考えていField
ます。たとえば、次のように動作するはずです。
これを達成する方法を教えてください。次のことを試しましたが、うまくいきませんでした:
c++ - 暗黙的なパラメーターを含むテンプレート、前方宣言、C++
暗黙のパラメーターを持つテンプレート クラスの宣言があります。
List.h
別のヘッダー ファイルでフロー フォワード宣言を使用しようとしました。
分析.h
しかし、G++ には次のエラーが表示されます。
暗黙的なパラメーターなしで前方宣言を使用する場合
コンパイラはこの構造を受け入れません
分析.h
次のエラーが表示されます (つまり、暗黙的な値を受け入れません)。
更新された質問:
テンプレート定義からデフォルト パラメータを削除しました。
List.h
クラス List を使用する最初のファイルには、パラメーター属性の暗黙的な値を持つ前方宣言があります
Analysis1.h
クラス リストを使用する 2 番目のクラスは、暗黙の値を使用して前方定義を使用します。
Analysis2.h
クラス List を使用する 2 番目のクラスは、暗黙の値を使用した前方定義なし
Analysis2.h
c++ - 暗黙のテンプレート パラメータ
次のコードは、Xcode でコンパイル エラーを生成します。
error: missing template arguments before 'MyFoo'
に変更Foo MyFoo(123);
するFoo<int> MyFoo(123);
と問題は解決しますが、コンパイラは適切なデータ型を把握できないのでしょうか?
これはコンパイラのバグですか、それとも暗黙のテンプレート パラメータを誤解していますか?
perl - Perlで「インポート」サブルーチンが大文字になっていないのはなぜですか
気になります。Perlの暗黙的に呼び出されるサブルーチンのほとんどは、すべて大文字で名前を付ける必要があります。TIESCALAR、DESTROYなど。実際にperldoc perltoot
は
コンストラクターに任意の名前を付けることができる場合は、デストラクタを使用しないのはなぜですか?コンストラクタは明示的に呼び出されますが、デストラクタは呼び出されないためです。破壊は、Perlのガベージコレクション(GC)システムを介して自動的に行われます。これは、高速ですが、やや怠惰な参照ベースのGCシステムです。何を呼ぶべきかを知るために、PerlはデストラクタにDESTROYという名前を付けるように主張しています。現在、デストラクタを呼び出す適切なタイミングに関するPerlの概念は明確に定義されていません。そのため、デストラクタが呼び出されるときに依存するべきではありません。
DESTROYがすべて大文字になっているのはなぜですか?Perlは、関数が何らかの方法でPerlによって自動的に呼び出されることを示すための規則として、純粋に大文字の関数名を使用する場合があります。暗黙的に呼び出されるその他のオブジェクトには、BEGIN、END、AUTOLOADに加えて、perltieで説明されているタイオブジェクトによって使用されるすべてのメソッドが含まれます。
では、なぜimport
サブルーチンは小文字のままになっているのでしょうか。誰かがこれについて良い洞察を持っていますか?
f# - オーバーロードされたコンストラクターを暗黙のF#型に追加する
暗黙の型構文を使用して次の型を作成しました。
ただし、次のオーバーロードされたコンストラクターをこのタイプ(ここではC#にあります)に追加する必要があります。
私が抱えている問題は、暗黙の型でオーバーロードされたコンストラクターには、最初のコンストラクターのサブセットであるパラメーターリストが必要であるように見えることです。明らかに、追加したいコンストラクターはこの要件を満たしていません。暗黙の型構文を使用してこれを行う方法はありますか?どちらの方法でこれを行う必要がありますか?私はF#を初めて使用するので、変更を加えたタイプ全体を表示できれば幸いです。
前もって感謝します、
ボブ
PS私のクラスをより機能的なスタイルにするための他の提案があれば、それについてもコメントしてください。
wcf - DataContract を持つクラスのすべてのメンバーがデータメンバーであると暗黙的に想定する属性はありますか?
すべてのメンバーに [DataMember] を指定する代わりに、それがデータメンバーであると想定できる属性のようなものはありますか?
Web サービスにシリアル化する必要がある多くのメンバーを持つクラスがあります。
c - 関数の暗黙の宣言
私はLinuxとgcc4.2.3を使用しています。
以下のコード部分では、lp_parm_talloc_string関数が暗黙的に呼び出され、その後、次のように定義されます。
この部分では、以下のエラーが発生します。
このような場合を許可するようにコンパイラに指示するにはどうすればよいですか?
scala - Scala の型クラスは何に役立ちますか?
このブログ投稿からわかるように 、Scala の「型クラス」は、トレイトと暗黙のアダプターで実装された単なる「パターン」です。
ブログにあるように、traitA
とアダプターがあれば、このアダプターを明示的に呼び出さずに type の引数を使用して、B -> A
type の引数を必要とする関数を呼び出すことができます。A
B
いいと思いましたが、特に役に立ちませんでした。この機能が何に役立つかを示すユースケース/例を挙げていただけますか?