問題タブ [mutability]

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 投票する
1 に答える
93 参照

java - 文字列は不変ですが、int も不変です。このコードは私を困惑させます

このコードには、値で初期化した int があります。ここで、この参照を別の変数に作成し、新しい値を割り当てます。しかし、これは他の変数に反映されるべきです。しかし、そうではありません。この Java 参照がどのように値渡しされるか。文字列は不変ですが、これが整数でどのように起こるか

これはO/Pです

10

20

10

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

reference - 借用と変更可能な借用の生涯における奇妙な失敗

リンクされたリストの要素への変更可能な参照を生成する反復子を実装しようとしているときに、奇妙な問題に遭遇しました。

これはうまくいきます:

しかし、これはうまくいきません。コンパイラは、 の有効期間がself短すぎて、内容を安全に再借用できることを保証できないと言います:

両方の例が機能するか、または両方が機能しないことを期待しますが、変更可能と変更不可として何かを借用すると、コンパイラが寿命をチェックする方法にどのように影響するか理解できません。確かに何かが安全に借用できるほど長生きするなら、それは安全に可変的に借用できるほど長生きするでしょうか?

編集: 両方のイテレータの定義は次のとおりです。

LinkedLisk:

ファイルの完全なビューについては、 https://github.com/TisButMe/rust-algo/blob/mut_iter/LinkedList/linked_list.rsを参照してください。

0 投票する
3 に答える
1451 参照

clojure - :volatile-mutable と :unsynchronized-mutable の意味的な意味は何ですか?

可変フィールドに^:unsynchronized-mutable の注釈が付けられていることに気付いたとき、私は clojure lib を研究していました。ミュータブルはミュータブルですが、非同期部分が何を意味するのかわからなかったので、以下を含むドキュメントを読みました。

ミュータブル フィールドを正しく使用するのは非常に難しく、Clojure 自体で Clojure の参照型などのより高いレベルの構造を構築しやすくするためにのみ存在することに注意してください。これらは専門家向けです。:volatile-mutable または :unsynchronized-mutable のセマンティクスと意味がすぐにわからない場合は、使用しないでください。

ニュアンスを理解できませんでした:実際には、どの可変性アノテーションを選択しても問題ないということですか、それとも可変型の使用を完全に忘れるべきだと言っているのでしょうか?

そして、好奇心のために、より低いレベルの抽象化では、それらの間のセマンティックの違いは何ですか?

ありがとう!

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

functional-programming - Elixir の Module.register_attribute は変更可能ですか?

モジュールで可変状態を作成する方法ですか? これをどのように使用するとよいでしょうか? そのようなことは、関数型プログラミングの不変性のアイデアを壊すものではないでしょうか?

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

data-structures - `cdr` の `set-car!` が `car` も変更するのはなぜですか?

ラスト以降は、ではなく(set-car! (cdr p) 'b)pなります。なんで?((b) b)((a) b)

0 投票する
7 に答える
71125 参照

swift - Swiftはメソッドパラメータを変更可能にしますか?

追加の変数を作成せずにこのエラーに対処するにはどうすればよいですか?

xの値を格納するためだけに追加の変数を作成したくありません。私がやりたいことをすることさえ可能ですか?