問題タブ [language-specifications]
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.
c# - foreach は C# でどのように実装されていますか?
foreach
C# ではどのように正確に実装されていますか?
その一部を次のように想像します。
しかし、私は実際に何が起こっているのかわかりません。enumerator.Current
各サイクルの返品にはどのような方法が使用されていますか? [サイクルごとに] を返しますか、それとも無名関数または本体を実行するために何かを必要としforeach
ますか?
c# - 明示的なレイアウト タイプでの bool フィールドのセマンティクス (ECMA-334)
ECMA-334 (C# 言語仕様) で次の動作が定義されている場所を見つけようとしています。ソースプログラムは以下の通りです。
実行結果は以下。
これはセクション 14.9.4 と §14.10.3 の両方に違反しているため、これらのケースをカバーする例外が別の場所に記載されていると想定しています。これは、AND、OR、NAND、または NOR 演算を使用するコードには影響しませんが、XOR および/または論理二条件演算を使用するコードに影響する可能性があることに注意してください。
c# - ジェネリックパラメータがnullにならないのはいつですか
一般的なGetHashCode(T foo)
方法では、であるかどうかを確認しfoo
ますnull
。しかし、私は奇妙なResharperの警告に出くわしました。
次のコードでは、foo
決してできませんnull
か?
しかし、私が知る限り、以下は完全に合法です。
c# - C# 5 言語仕様はどこにありますか?
C# 5.0 は 2012 年 8 月からリリースされています。仕様はどこで確認できますか? 彼らは ECMA 仕様をやめましたが、MSDN はどうですか?
c# - 実行時型とコンパイル時型のメソッド呼び出し
C#4.0の仕様は次のとおりです。
仮想メソッドが呼び出されると、その呼び出しが行われるインスタンスのランタイムタイプによって、呼び出す実際のメソッド実装が決まります。非仮想メソッドの呼び出しでは、インスタンスのコンパイル時のタイプが決定要因になります。
最初は、これは初期化と関係があると思いました。たとえば、2つの初期化が与えられます。
BaseClass bcDerived = new Derived();
vsBaseClass bcBase = new BaseClass();
ヘルパークラスのオーバーロード:
Method
この場合、呼び出しはvirtual
キーワードの影響を受けません。をマークしたかどうかに関係なくvirtual
、最小の派生オーバーロードが呼び出されます。Derivedクラスでのみoverride
、メソッド呼び出しが変更されます。
では、「ランタイムタイプ」と「コンパイル時タイプ」はどういう意味ですか?それらはメソッド呼び出しにどのように影響しますか?
c# - 拡張メソッドが明示的な変換の必要性をバイパスするのはなぜですか?
2 つの参照型間の明示的な変換設定があります。
Foo を呼び出して型を渡す場合はBike
、明示的な変換を実行する必要があります。
ただし、拡張メソッドを追加すると、明示的な変換は不要になります。
Bike
拡張メソッドが Foo の型を暗黙的に呼び出すことができるのはなぜですか?
frama-c - おそらく無限のC関数のACSL仕様
外部関数の動作、より正確にはそれらの終了を指定しようとしています。ACSLのドキュメントによると、\terminates p;
プロパティでは、述語が保持されている場合p
は関数が終了することが保証されていますが、保持されていない場合は何も指定されp
ていません。また、決して返されない関数は次のように指定できることも説明しています。
さらに、ACSLは\exits p;
、突然終了した場合の事後条件を指定するプロパティを提供します。だから私は疑問に思っています:
関数が常に無限ループになるように指定しますか?
さらに、仕様は何ですか:
可能な無限ループに関する手段?
syntax-highlighting - Gedit オンライン言語仕様ジェネレーター
gedit の新しいハイライトのオンライン ジェネレーターなどはありますか?
未知の言語を使用していて、構文を強調表示したいのですが、複雑すぎるようで、オンライン クリエーターの可能性があると思います。
javascript - 別の配列/オブジェクトに存在する場合、配列内の要素のインデックスを取得します
次の 2 つの配列があります。
とオブジェクト
それらは固定されており、構造自体を変更することはできません。
itemValues の値には ref オブジェクトからの値を入力する必要があります。インデックスを取得するには、itemKeys 配列を検索する必要があります。
この質問の要点:各キーが ref に存在するかどうかを確認するために 2 つの「for」ループを使用したくありません。「indexOf」などのJAVASCRIPT固有の機能を使用したいので、次のようにします。
このタスクを完了するには、2 つの FOR-LOOP ではなく、その他の方法がありますか?
なぜこれが必要なのか、なぜ 2 つのループが気に入らないのか、疑問に思わないでください。明らかに、「背後」の実装では2つのループになります。