タグ付けされた質問 「variable-assignment」

変数名で示された保管場所に保管されている値を設定または再設定するプロセス。


2
移動したオブジェクトで何ができますか?
規格は、オブジェクトが移動された後でオブジェクトに対して何ができるかを正確に定義していますか?移動元オブジェクトでできることはそれを破壊することだけだと思っていましたが、それだけでは不十分です。 たとえばswap、標準ライブラリで定義されている関数テンプレートを使用します。 template <typename T> void swap(T& a, T& b) { T c = std::move(a); // line 1 a = std::move(b); // line 2: assignment to moved-from object! b = std::move(c); // line 3: assignment to moved-from object! } 明らかに、移動元のオブジェクトに割り当てることが可能でなければなりません。そうしないと、2行目と3行目が失敗します。では、移動元オブジェクトで他に何ができるでしょうか?これらの詳細を規格のどこに正確に見つけることができますか? (ちなみに、なぜ1行目ではT c = std::move(a);なくなのT c(std::move(a));ですか?)

2
グループごとにdata.tableで:=を使用して複数の列を割り当てる
を使用して複数の列に割り当てる最良の方法は何data.tableですか?例えば: f <- function(x) {c("hi", "hello")} x <- data.table(id = 1:10) 私はこのようなことをしたいと思います(もちろんこの構文は間違っています): x[ , (col1, col2) := f(), by = "id"] そして、それを拡張するために、変数に名前が格納された列がたくさんある可能性があるので(たとえばcol_names)、次のようにしたいと思います。 x[ , col_names := another_f(), by = "id", with = FALSE] このようなことをする正しい方法は何ですか?

5
Linux bash:複数の変数の割り当て
Linuxのbashには、PHPの次のコードに似たものが存在しますか。 list($var1, $var2, $var3) = function_that_returns_a_three_element_array() ; つまり、1つの文で3つの異なる変数に対応する値を割り当てます。 myBashFuntion文字列「qwert asdfg zxcvb」をstdoutに書き込むbash関数があるとします。次のようなことは可能ですか? (var1 var2 var3) = ( `myBashFuntion param1 param2` ) もちろん、等号の左側の部分は有効な構文ではありません。私が求めていることを説明しようとしているだけです。 ただし、機能するのは次のとおりです。 array = ( `myBashFuntion param1 param2` ) echo ${array[0]} ${array[1]} ${array[2]} ただし、インデックス付き配列は、単純な変数名ほど説明的ではありません。 しかし、私はただ行うことができました: var1 = ${array[0]} ; var2 = ${array[1]} ; var3 = ${array[2]} しかし、これらは、私が避けたい3つのステートメントです。 ショートカット構文を探しています。出来ますか?

7
Javascript Ternary演算子による演算子の優先順位
このコードの最初の部分(+ =)を三項演算子と組み合わせて頭を抱えているようには見えません。 h.className += h.className ? ' error' : 'error' このコードが機能する方法は次のとおりです。 h.className = h.className + h.className ? ' error' : 'error' しかし、それは私のコンソールにエラーを与えるため、正しくありません。 だから私の質問は、このコードをどのように正しく解釈すべきかということです?

2
一度に複数の変数に同じ値を割り当てますか?
PHPの複数の変数に同じ値を一度に割り当てるにはどうすればよいですか? 私のようなものがあります: $var_a = 'A'; $var_b = 'A'; $same_var = 'A'; $var_d = 'A'; $some_var ='A'; 私の場合、すべての変数の名前を同じ名前に変更することはできません(これにより、より簡単になります)ので、よりコンパクトな方法ですべての変数に同じ値を割り当てる方法はありますか?


13
Pythonのラムダ式内の代入
オブジェクトのリストがあり、1つを除いて空のすべてのオブジェクトを削除したい filterして、lambda式。 たとえば、入力が次の場合: [Object(name=""), Object(name="fake_name"), Object(name="")] ...出力は次のようになります。 [Object(name=""), Object(name="fake_name")] lambda式に割り当てを追加する方法はありますか?例えば: flag = True input = [Object(name=""), Object(name="fake_name"), Object(name="")] output = filter( (lambda o: [flag or bool(o.name), flag = flag and bool(o.name)][0]), input )

10
なぜi = i + iは私に0を与えるのですか?
私は簡単なプログラムを持っています: public class Mathz { static int i = 1; public static void main(String[] args) { while (true){ i = i + i; System.out.println(i); } } } このプログラムを実行0するiと、出力にすべてが表示されます。私は最初のラウンドi = 1 + 1、その後i = 2 + 2に続く、i = 4 + 4などが続くと予想していました。 これはi、左側で再宣言しようとするとすぐに、その値がにリセットされるため0です。 誰かが私にこれのより細かい詳細を指摘できるとしたら、それは素晴らしいことです。 をに変更するintとlong、期待どおりに数値が出力されているようです。それが32ビットの最大値にどれだけ速く到達するかに驚いています!

3
Pythonのa-= bとa = a-bの違い
私は最近、このソリューションをN行ごとの行列の平均に適用しました。ソリューションは一般的に機能しますが、7x1アレイに適用すると問題が発生しました。-=オペレーター使用時の問題だと気づきました。小さな例を作るには: import numpy as np a = np.array([1,2,3]) b = np.copy(a) a[1:] -= a[:-1] b[1:] = b[1:] - b[:-1] print a print b 出力: [1 1 2] [1 1 1] したがって、配列の場合、とはa -= b異なる結果が生成されa = a - bます。これまでは、この2つの方法はまったく同じだと思っていました。違いはなんですか? マトリックスのN行ごとに合計するために言及している方法が、たとえば7x4マトリックスでは機能するが7x1アレイでは機能しないのはなぜですか?


6
Bashのテキストファイルから配列を作成する
スクリプトはURLを受け取り、それを解析して必須フィールドを探し、その出力をリダイレクトしてファイルfile.txtに保存します。フィールドが見つかるたびに、出力が新しい行に保存されます。 file.txt A Cat A Dog A Mouse etc... file.txt新しいスクリプトで配列を取得して作成したいと思います。このスクリプトでは、すべての行が配列内の独自の文字列変数になります。これまで私が試した: #!/bin/bash filename=file.txt declare -a myArray myArray=(`cat "$filename"`) for (( i = 0 ; i < 9 ; i++)) do echo "Element [$i]: ${myArray[$i]}" done このスクリプトを実行すると、空白が原因で単語が分割され、 必要な出力 Element [0]: A Cat Element [1]: A Dog etc... 私はこれを取得することになります: 実際の出力 Element [0]: A …

3
C ++でコンストラクターと=演算子のオーバーロードをコピーする:一般的な関数は可能ですか?
コピーコンストラクター以来 MyClass(const MyClass&); および=演算子のオーバーロード MyClass& operator = (const MyClass&); ほぼ同じコード、同じパラメーターを持ち、戻り値が異なるだけですが、両方が使用する共通の関数を持つことは可能ですか?

5
CおよびC ++が構造体内の配列のメンバーごとの割り当てをサポートしているのに、一般的にはサポートしていないのはなぜですか?
配列のメンバーごとの割り当てがサポートされていないため、以下が機能しないことを理解しています。 int num1[3] = {1,2,3}; int num2[3]; num2 = num1; // "error: invalid array assignment" 私はこれを事実として受け入れ、言語の目的はオープンエンドのフレームワークを提供することであり、配列のコピーなどの実装方法をユーザーに決定させることであると考えました。 ただし、以下は機能します。 struct myStruct { int num[3]; }; struct myStruct struct1 = {{1,2,3}}; struct myStruct struct2; struct2 = struct1; 配列num[3]は、のインスタンスからのインスタンスにメンバーごとに割り当てられstruct1ますstruct2。 配列のメンバーごとの割り当てが構造体でサポートされているのに、一般的にはサポートされていないのはなぜですか? 編集:ロジャーパテのスレッドにコメントのstd ::構造体の文字列-コピー/割り当ての問題?答えの一般的な方向を指しているようですが、私はそれを自分で確認するのに十分なことを知りません。 編集2:多くの優れた応答。行動の背後にある哲学的または歴史的根拠についてほとんど疑問に思っていたので、ルーサー・ブリセットを選びましたが、関連する仕様書へのジェームズ・マクネリスの参照も役に立ちました。

11
nullをチェックし、そうでない場合は別の値を割り当てる最短の方法
私が引っ張っていvarcharDBから値をし、設定したいstring、彼らがしている場合、私は「」とに割り当てるいますnull。私は現在このようにやっています: if (string.IsNullOrEmpty(planRec.approved_by) == true) this.approved_by = ""; else this.approved_by = planRec.approved_by.toString(); これを1行で行う方法は次のようになります。 this.approved_by = "" || planRec.approved_by.toString(); しかし、これを行うための最適な方法を見つけることができません。より良い方法はありますか、それとも私がそれを行うための最良の方法がありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.