問題タブ [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 に答える
213 参照

f# - 関数内で「do」を使用できるのはなぜですか?

次のコードが VS 2013 でコンパイルおよび動作することに気付きました。

しかし、F# 3.0 の仕様を見ると、このように使用されているという言及は見つかりませんdo。私が知る限りdo、次の用途があります。

  • ループの一部として (例: )、ここでは当てはまりません。while expr do expr done
  • 計算式の内部。例:

    ここでもそうでfはなく、計算式は含まれていません。

    ここで私を混乱させているのは、仕様によれば、 のdo後にin. これinは構文が軽量であるためオプションである必要がありますが、ここに追加するとコンパイル エラー (「予期しないトークン 'in' または不完全な式」) が発生します。

  • モジュールまたはクラス内のステートメント。これはここでも当てはまりdoません。モジュールやクラス内ではなく、関数内にあります。

また、コードがコンパイルされないことにも気付きました#light "off"(「予期しないキーワード 'do' in binding」) が、軽量構文のセクションでもこれを説明するものは見つかりませんでした。

これらすべてに基づいてdo、関数内でこのように使用することはコンパイルされるべきではないと思いますが、コンパイルされます。仕様に何か見落としがありましたか? それとも、これは実際にはコンパイラまたは仕様のバグですか?

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

c++ - 「this->」を使用してコンストラクター内の変数名を区別する

以前はこれを行うことができ、意図したとおりに機能していたことを思い出します。

上記は、Microsoft Visual C++ 6.0 以降のいくつかのバージョンで 200x 前後で動作したと思います。
しかし、今は Microsoft Studio 2013 でこれを行う必要があり、次this->のように使用する必要があります。

言語仕様の変更または Microsoft コンパイラの変更はありましたか?

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

svg - SVG パス仕様: moveTo と暗黙の lineTo

少しSVGパスパーサー/ノーマライザーを作成しようとしていますが、仕様に関する最後の問題が発生しました:

私が理解している限り、ほとんどのコマンドは追加の暗黙的なコマンドをサポートしており、それらがサポートしていて相対モードになっている場合、「現在のポイント」は最後の暗黙的なコマンドの後で更新されます。それらの間ではありません。

しかし、「moveTo」コマンドは特別なものであり、暗黙的な「lineTo」コマンドを許可します。「lineTo」コマンド自体は、最後の暗黙的なコマンドの後にのみ「現在のポイント」を更新します。

現在の点から指定された (x,y) 座標まで線を引き、それが新しい現在の点になります。L (大文字) は、絶対座標が続くことを示します。l (小文字) は、相対座標が続くことを示します。ポリラインを描画するために、いくつかの座標ペアを指定できます。コマンドの最後に、新しい現在の点が、提供された最終的な座標セットに設定されます。

「lineTo」を追加した「moveTo」が何をするのかわかりません。SVG パス仕様の抜粋:

指定された (x,y) 座標で新しいサブパスを開始します。M (大文字) は、絶対座標が続くことを示します。m (小文字) は、相対座標が続くことを示します。moveto の後に複数の座標のペアが続く場合、後続のペアは暗黙の lineto コマンドとして扱われます。したがって、暗黙的な lineto コマンドは、moveto が相対の場合は相対になり、moveto が絶対の場合は絶対になります。相対 moveto (m) がパスの最初の要素として表示される場合、絶対座標のペアとして扱われます。この場合、最初の moveto が絶対 moveto として解釈されても、後続の座標ペアは相対座標として扱われます。

特に最後の文は紛らわしいです。

さらに悪いことに、SVGTiny Path Specでは別の説明が書かれていますが、他のほとんどすべては同じです。

指定された (x,y) 座標で新しいサブパスが開始されます。これにより、指定された座標に新しい現在のポイントも確立されます。相対「moveto」(m) が「path」の最初の要素として表示される場合、絶対座標のペアとして扱われます。「moveto」の後に複数の座標のペアが続く場合、後続のペアは暗黙の「lineto」コマンドとして扱われます。

「現在のポイント」がその間に更新されることを意味しますか (これは他のすべてと矛盾します)、それとも新しいバージョンで修正されたあいまいな説明でしたか?