問題タブ [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.
ios - 変数値が変更されたときにビューのフレームを変更する方法は?
私のビューコントローラーには、ビューがほとんどありません。そのビューのフレームはすべて変数に依存しています
CGFloat borderWidth
これらのビューは次のように定義されます
borderwidth
別のクラスからの値を変更するときに、sec1 のフレームを変更したい。どうすればそれができますか?そんなこと知ってる
[sec1 setFrame:CGRectMake(self.borderWidth, self.borderWidth,self.frame.size.width/2-(self.borderWidth*3/2),self.frame.size.height/2 - (self.borderWidth*3/2) )];
フレームを変更しますが、多くの uiviews があります。したがって、この方法でそれらすべてにフレームを設定することはできません。
java - 列挙型参照またはプリミティブ (例あり) - 浅い/深いコピー
私の質問は非常に基本的なものですが、すべてを 100% 理解したいと思っています。SO の多くの質問は私の投稿を参照していますが、満足のいく答えが見つかりません。
Java の Enum は参照型であることはわかっています。次のスニペットを考えてみましょう。
Test のコピー コンストラクターが浅いコピーを作成するため、出力は非常に明白です。
しかし、Javaの列挙型も参照型であるため、1つ理解できません。A クラスを Enum に置き換えましょう。
私は出力を期待していました:
しかし、私は持っています:
質問: なぜですか? 私の考えはどこが間違っていますか?
lisp - 構造のディープ コピーを作成する方法
Common Lisp で構造体をコピーするにはどうすればよいですか? 次のような構造を作成しました。
ボードは 2 次元配列です。私はやってみました:
で何かを変更new-state
すると、2 次元配列の変更も で発生しstate
ます。state
のような構造のコピーを作成し、それを個別に変更するにはどうすればよいですか?
ios - 複数のタブで同じ [ストーリーボード] ビューを使用し、選択したタブに応じて少し変更する方法は? (iOS)
この質問の言い回しがちょっと変なのはわかっていますが、私がやろうとしていることを説明させてください。
それぞれ独自のビューを持つ 2 つのタブを持つアプリがあるとします。どちらのビューもほぼ同じですが、一方にはボタンが 1 つまたは 2 つ含まれていて、もう一方には含まれていません。
ストーリーボード モードで既に 1 つのビューを作成しましたが、少しだけ変更して、同じビューをもう 1 つのタブで再利用したいと考えています。
1 つを変更すると、もう 1 つを変更する必要があり、2 つの間に矛盾が生じる可能性があるため、ディープ コピーは行いたくありません。
では、複数のタブで同じ一般的なビューを使用するにはどうすればよいでしょうか。現在のタブに応じて、それについて少し変更するだけでよいでしょうか?
ユニバーサル コンテンツをストーリーボード ビューに追加してから、特定のタブ専用コンテンツをプログラムで追加する必要がありますか? これを行うと、どのタブが選択されているかを検出する方法が必要になりますよね? それを行う方法はありますか?
ご提案ありがとうございます。
python - 浅いコピー: リストは変更されているのに、文字列は変更されていないのはなぜですか?
辞書の浅いコピーを行うと、実際には参照のコピーが作成されることを理解しています。だから私がこれを行うと:
したがって、リスト ['a','b','c'] の参照が y にコピーされます。リストを変更するたびに (x['key'].remove('a')
たとえば)、dict x と y の両方が変更されます。この部分はわかります。しかし、以下のような状況を考えると:
するとy['user']='guest'
、 x['user'] は変更されませんが、リストは引き続き同じ参照を共有します。私の質問は、文字列とリストの違いは何ですか? この背後にあるメカニズムは何ですか?
java - Javaのオブジェクトをクリアまたはnullに設定する
私は最近、Java オブジェクトによって占有されているメモリを解放することを検討していました。そうしているうちに、Javaでオブジェクトがどのようにコピーされるか(浅い/深い)、およびオブジェクトがまだ使用されているときに誤ってオブジェクトをクリア/無効にするのを避ける方法について混乱しました。
次のシナリオを検討してください。
ArrayList<Object>
aを引数としてメソッドに渡します。ArrayList<Object>
スレッドによって処理される実行可能なクラスに aを渡します。- を に入れ
ArrayList<Object>
ますHashMap
。
これらの場合、list = null;
またはを呼び出すlist.clear();
と、オブジェクトはどうなりますか? どの場合にオブジェクトが失われ、どの場合に参照のみが null に設定されますか?
オブジェクトの浅いコピーと深いコピーに関係していると思いますが、どの場合に浅いコピーが発生し、どの場合にJavaで深いコピーが発生しますか?
c# - C# で構造の浅いコピーを作成する
私は自分の答えを検索しようとしましたが、C# ではなく C に関してそれらを見つけたので、投稿することを考えました。
ここでの私の質問は些細なことかもしれません。
私の理解によると(簡単な言葉で)
コピー完了後
浅いコピー -> メイン オブジェクトとコピーされたオブジェクト (参照または値型) は、メモリ内の同じオブジェクトを指す必要があります
DeepCopy -> メイン オブジェクトとコピーされたオブジェクト (参照または値の型) は、メモリ内の異なるオブジェクトを指す必要があります
これを進めて、C# に構造があり、同じ構造の浅いコピーを作成しようとしています。「MemberwiseClone」メソッドを使用してみましたが、参照型でしか機能しないと思います。値型の場合、「MemberwiseClone」メソッドはそれをオブジェクトにボックス化し、スタック内の別のメモリアドレスにボックス化解除すると思います。
私が試したことは以下の通りです。
私の質問は、単純な構造の浅いコピーを作成するにはどうすればよいですか (可能な場合) ?
ここで私の基本が正しく、くだらない話をしていないことを願っています。私が行った声明のいずれかで私が間違っている場合は、私を修正してください。
よろしく、
サマール