問題タブ [language-construct]
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.
javascript - JavaScript には php list コマンドに似た言語構造がありますか?
JavaScript には、php list コマンドに似た言語構造または何かがありますか? http://php.net/manual/en/function.list.php
このコマンドは、1 つのステートメントで配列の値を変数に割り当てます。たとえば、次の配列があるとします。
list コマンドは、各配列要素の値を名前付き変数に割り当てます。
そのような:
したがって、これは 1 つのステートメントで多くの変数に値を割り当てる簡単な方法です。
JavaScript には、各変数を個別に割り当てる必要がない同等のものがありますか?
オブジェクトのプロパティまたは配列の要素を使用してこれを行う方法はありますか? そうでない場合、それを行う関数を作成できますか? これを行う唯一の方法が関数経由である場合、関数は変数が定義されているスコープにアクセスする必要があります。
この 5 年前の質問: PHP の list()に相当する Javascript の解決策を試しましたが、うまくいきません。Array プロトタイプの変更は、私の node.js 環境では変数の割り当てに失敗し、左側の配列割り当ては Chrome での参照エラーです。実験的な新しい技術についての話がありますが、話は数年前です。リンクされた質問に記載されている解決策よりも優れた解決策があるかどうかを知りたいです。
ruby-on-rails - ブロックの実行後に変数の元の値を保持するための ruby コンストラクト
変数の元の値を保持し、何かを実行してから、次のように元の値を復元する必要がある場合があります。
Ruby には、より簡単に実行できる言語構造がありますか?
これを検索しようとしましたが、グーグルで検索できる用語を実際に思いつくことができませんでした。現在のバインディングを渡し、eval を使用して元の値を元のコンテキストに保持することで、独自のソリューションをコーディングすることができました。
これを達成するためのより良い代替手段はありますか?
c++ - C++ で破壊をエミュレートするにはどうすればよいですか?
JavaScript ES6 には、 destructuringと呼ばれる言語機能があります。他の多くの言語にも存在します。
JavaScript ES6 では、次のようになります。
同様の構文を取得し、この種の機能をエミュレートするには、C++ で何ができますか?
php - 変数関数を言語構造で使用できますか?
ここでのこの質問は、問題に対処するものです。empty()
私の場合、 orのような関数を呼び出したいと思いis_int()
ます。例えば:
この質問は次の重複ではありません。
私の質問は、ユーザーが作成した関数ではなく、ネイティブ PHP 関数に対応しています。
scala - Scala の「マッチ」構造はシンタックス シュガーですか? もしそうなら、どのように機能しますか?
の
かなりの構文糖衣が進行中です。case
暗黙的に2つのオブジェクトを作成していることがわかります
そしてそれが私たちが例えば書くことができる理由でありSum(...)
、クラスを介してオブジェクトをインスタンス化することもSum(...)
できますSum.apply(...)
。
match
コンストラクトもシンタックスシュガーであるというのは正しいですか?もしそうなら、どのように - 例えばcase Number(n)
- コンパイラによって書き換えられますか?
n
incase Number(n)
がどこにも定義されているか、値にバインドされていることがわからないので、私は尋ねています。奇妙なことに、match
構文では最初の文字の大文字と小文字が重要になります (大文字の場合は定数になります)。私が知る限り、これはmatch
関連性のある構造にすぎないため、これは奇妙です.
c++ - C++ 関数呼び出し時のデフォルト パラメータの指定
次のようなコードがあるとします。
上記のコードで明らかにわかるように、パラメーターa
、b
、およびc
の既定のパラメーター値は 0 です。次に、以下のメイン関数を見てください。
これで、パラメーターをスキップしてデフォルト値のままにすることはできないことがわかりました。これは、その値がその位置のパラメーターとして評価されるためです。私が言いたいのは、 call, と言うことができないということですf(a,c)
。なぜなら、c
が として評価されるb
からですc
。呼び出し元の関数が C++ で指定する方法はありますか? 最後のパラメーターから none に戻ることに制限されることなく、関数の任意の位置にある既定のパラメーター値を使用する方法はありますか? これを達成するための予約済みキーワード、または少なくとも回避策はありますか? 私が与えることができる例は次のようになります:
c# - C++ の std::vector に相当する C#。終わり()
インターネットで見つけたいくつかの C++ コードを六角球プロジェクト用に C# で書き直そうとしていましたが、次のコードに出くわしました。
私はそれをほとんどC#に変換しました。Find<T>(List<T> list, T value)
std::find と同じ基本機能を実現する独自のメソッドも作成しました。
ただし、ドキュメントについてはまだわかりstd::vector<T>::end()
ません。ドキュメントは、イテレータの最後にある「プレースホルダー」スロットを指すイテレータを返し、それにアクセスしようとすると「未定義の動作」が発生すると述べています。これを行います:
1.) 私の C# では、end()
要素との比較を実行する通常のオブジェクトを扱う場合、オブジェクトをnull
?
2.) 整数やその他のプリミティブでは、-1 などのセンチネル値と比較する必要がありますか?
上記の c++ ソース コードでは、nbrs は std::vector、m_hexA は int、ti は構造体です。