問題タブ [shallow-copy]
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.
language-agnostic - ディープコピーとシャローコピーの違いは何ですか?
ディープコピーとシャローコピーの違いは何ですか?
php - PHPでオブジェクトのコピーを作成するにはどうすればよいですか?
PHPでは、オブジェクトは参照によって渡されるようです。代入演算子でさえ、オブジェクトのコピーを作成しているようには見えません。
簡単で工夫された証拠は次のとおりです。
どちらの印刷の場合でも、「後」になります
では、参照ではなく値で$ aをset_b()に渡すにはどうすればよいですか?
c# - 継承されたクラスからの浅いコピー
さて、Product という抽象基本クラス、Product を継承する KitItem クラス、および KitItem を継承する PackageKitItem クラスがあります。すなわち。
KitItems をロードしましたが、PackageKitItems のコレクションをロードする必要があります。これは、事実上、KitItems の浅いコピーです。
現在、次のように、 Product コンストラクターでハッキーな浅いコピーのように感じることを行っています。
私は次のように KitItem にコピーを設定しようとしました:
そしてそれを次のように呼び出します:
しかし、私は無効なキャストを取得します。これを達成するための最良の方法のアイデアを探しています。
python - 明白な理由なしに使用されるPythonリストスライス構文
Pythonコードで使用されているリストスライス構文が次のように表示されることがあります。
確かにこれは次と同じです:
それとも私は何かが足りないのですか?
c# - サイズを変更するために配列に対して浅いコピーを実行すると、どのような影響がありますか?
深いコピーと浅いコピーに関する私の理解が正しければ、私の質問は不可能です。配列 (a[10]) があり、浅いコピー (b[20]) を実行する場合、b のデータが連続していないため、これは不可能ではないでしょうか?
私がこれを完全に間違っている場合、配列のサイズを変更するために再割り当てを行うc ++の機能を(c#で)模倣する迅速な方法を誰かがアドバイスできます。
注
System.Array オブジェクトの .Clone() および .Copy() メンバーを見ています。
c# - この浅いコピー クラスをどのように改善しますか?
あるオブジェクトから別のオブジェクトにプロパティ値をコピーする単一の静的メソッドを持つクラスを作成しました。各オブジェクトがどのタイプであるかは気にせず、それらが同一のプロパティを持っているだけです。それは私が必要とすることをするので、それ以上のエンジニアリングはしませんが、どのような改善を行いますか?
コードは次のとおりです。
私は次のように使用しています:
c# - C#で何かを浅いコピーするとき、文字列はどのように機能しますか?
文字列は参照型と見なされますが、値のように振る舞うことができます。手動または MemberwiseClone() を使用して何かを浅いコピーする場合、文字列はどのように処理されますか? それらは、コピーとマスターから分離され、分離されていると考えられていますか?
c# - 浅いコピー - 参照型の異常な性質
以下に示す 2 セットのコード スニペットの出力を理解できません。浅いコピーの概念を実際に理解していないのはどうしてですか。どのように説明できますか?
クラス:
コード スニペット 1:
出力: Name1 11
疑問: string は参照型ではありませんか。次に、スニペット 1 で p2.Name が「Name1」として出力される理由
コード スニペット 2:
出力: 名前1 1
c# - C# での配列の浅いコピーに関する質問
参照型の浅いコピーを正しく理解していること、およびここで巨大なメモリリークを構築していないことを確認するためだけに:
これは、最初に rtbLog.Lines の文字列への参照を行にコピーします。次に、行から最初の 100 個の参照を新しい文字列配列にコピーします。
つまり、rtbLog.Lines が最初に参照していた配列、(サイズ変更前) 行によって最初に参照された配列、最後に (サイズ変更後) 行に含まれていないすべての文字列がすべてガベージ コレクションされます。(それが理にかなっていることを願っています)
正しい?
c# - C# でシャロー コピーを行う最速の方法
C# で浅いコピーを行う最速の方法は何だろうか? 浅いコピーを行うには2つの方法があることだけを知っています:
- MemberwiseClone
- 各フィールドを 1 つずつコピーする (手動)
(2)は(1)よりも速いことがわかりました。浅いコピーを行う別の方法があるかどうか疑問に思っていますか?