問題タブ [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.

0 投票する
2 に答える
11243 参照

c# - foreach は C# でどのように実装されていますか?

foreachC# ではどのように正確に実装されていますか?

その一部を次のように想像します。

しかし、私は実際に何が起こっているのかわかりません。enumerator.Current各サイクルの返品にはどのような方法が使用されていますか? [サイクルごとに] を返しますか、それとも無名関数または本体を実行するために何かを必要としforeachますか?

0 投票する
1 に答える
106 参照

c# - 明示的なレイアウト タイプでの bool フィールドのセマンティクス (ECMA-334)

ECMA-334 (C# 言語仕様) で次の動作が定義されている場所を見つけようとしています。ソースプログラムは以下の通りです。

実行結果は以下。

これはセクション 14.9.4 と §14.10.3 の両方に違反しているため、これらのケースをカバーする例外が別の場所に記載されていると想定しています。これは、AND、OR、NAND、または NOR 演算を使用するコードには影響しませんが、XOR および/または論理二条件演算を使用するコードに影響する可能性があることに注意してください。

0 投票する
2 に答える
380 参照

c# - ジェネリックパラメータがnullにならないのはいつですか

一般的なGetHashCode(T foo)方法では、であるかどうかを確認しfooますnull。しかし、私は奇妙なResharperの警告に出くわしました。

次のコードでは、foo決してできませんnullか?

しかし、私が知る限り、以下は完全に合法です。

0 投票する
2 に答える
11091 参照

c# - C# 5 言語仕様はどこにありますか?

C# 5.0 は 2012 年 8 月からリリースされています。仕様はどこで確認できますか? 彼らは ECMA 仕様をやめましたが、MSDN はどうですか?

0 投票する
3 に答える
1980 参照

c# - 実行時型とコンパイル時型のメソッド呼び出し

C#4.0の仕様は次のとおりです。

仮想メソッドが呼び出されると、その呼び出しが行われるインスタンスのランタイムタイプによって、呼び出す実際のメソッド実装が決まります。非仮想メソッドの呼び出しでは、インスタンスのコンパイル時のタイプが決定要因になります。

最初は、これは初期化と関係があると思いました。たとえば、2つの初期化が与えられます。

BaseClass bcDerived = new Derived();vsBaseClass bcBase = new BaseClass();

ヘルパークラスのオーバーロード:

Methodこの場合、呼び出しはvirtualキーワードの影響を受けません。をマークしたかどうかに関係なくvirtual、最小の派生オーバーロードが呼び出されます。Derivedクラスでのみoverride、メソッド呼び出しが変更されます。

では、「ランタイムタイプ」と「コンパイル時タイプ」はどういう意味ですか?それらはメソッド呼び出しにどのように影響しますか?

0 投票する
3 に答える
166 参照

c# - 拡張メソッドが明示的な変換の必要性をバイパスするのはなぜですか?

2 つの参照型間の明示的な変換設定があります。

Foo を呼び出して型を渡す場合はBike、明示的な変換を実行する必要があります。

ただし、拡張メソッドを追加すると、明示的な変換は不要になります。

Bike拡張メソッドが Foo の型を暗黙的に呼び出すことができるのはなぜですか?

0 投票する
4 に答える
8125 参照

python - Pythonのいずれか/すべての短絡動作は明示的ですか?

ここでの議論によって促された

ドキュメントallは、との動作に相当するコードを提案していますany

同等のコードの動作を定義の一部と見なす必要がありますか、それとも実装で短絡しない方法でそれらを実装できますか?

これは、cpython / Lib / test/test_builtin.pyからの関連する抜粋です。

短絡動作を強制するために何もしません

0 投票する
1 に答える
184 参照

frama-c - おそらく無限のC関数のACSL仕様

外部関数の動作、より正確にはそれらの終了を指定しようとしています。ACSLのドキュメントによると、\terminates p;プロパティでは、述語が保持されている場合pは関数が終了することが保証されていますが、保持されていない場合は何も指定されpていません。また、決して返されない関数は次のように指定できることも説明しています。

さらに、ACSLは\exits p;、突然終了した場合の事後条件を指定するプロパティを提供します。だから私は疑問に思っています:

関数が常に無限ループになるように指定しますか?

さらに、仕様は何ですか:

可能な無限ループに関する手段?

0 投票する
2 に答える
353 参照

syntax-highlighting - Gedit オンライン言語仕様ジェネレーター

gedit の新しいハイライトのオンライン ジェネレーターなどはありますか?

未知の言語を使用していて、構文を強調表示したいのですが、複雑すぎるようで、オンライン クリエーターの可能性があると思います。

0 投票する
1 に答える
326 参照

javascript - 別の配列/オブジェクトに存在する場合、配列内の要素のインデックスを取得します

次の 2 つの配列があります。

とオブジェクト

それらは固定されており、構造自体を変更することはできません。

itemValues の値には ref オブジェクトからの値を入力する必要があります。インデックスを取得するには、itemKeys 配列を検索する必要があります。

この質問の要点:各キーが ref に存在するかどうかを確認するために 2 つの「for」ループを使用したくありません。「indexOf」などのJAVASCRIPT固有の機能を使用したいので、次のようにします。

このタスクを完了するには、2 つの FOR-LOOP ではなく、その他の方法がありますか?

なぜこれが必要なのか、なぜ 2 つのループが気に入らないのか、疑問に思わないでください。明らかに、「背後」の実装では2つのループになります。