問題タブ [mutable]
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.
iphone - NSMutableAttributedString の内容をクリアするにはどうすればよいですか?
オブジェクトの初期化で割り当て初期化された ivar があります。
ループで、attString の内容をクリアして再利用したい。どうすればいいですか?
ありがとう!
c# - 外部コードの観点から不変の可変構造体はどうですか?
更新:この質問を投稿した後、このアイデアの主な欠点は、そのような型が不適切に使用されやすいということです。つまり、利益を引き出すには、型を特定の方法で使用する必要があります。私が最初に念頭に置いていたのは、次のように使用されるものでした(SquareRootStruct
一貫性のために元の質問の例に固執します):
したがって、これがどれほど簡単に間違いを犯すかを考えると、これはクラスとしてより理にかなっているというリードの (彼のコメントでの) 正しい可能性があると考える傾向があります。
次の特性を持ちstruct
たいとします。
- 外部の観点から不変
- 初期化が早い
- 特定のプロパティの遅延計算 (およびキャッシュ)
明らかに、3 番目の特性はmutabilityを意味しますが、これが悪いことであることは誰もが知っています (「変更可能な値の型を作成しないでください!」というマントラが十分に頭にドリルされていると仮定します)。しかし、変更可能な部分が型自体の内部でのみ可視であり、外部コードの観点からは値が常に同じである限り、これは受け入れられるように思えます。
これが私が話していることの例です:
さて、明らかにこれは些細な例でMath.Sqrt
あり、この場合、このアプローチが価値があると考えるほどコストがかからないことはほぼ確実です。これは説明のための例にすぎません。
しかし、私の考えでは、これにより、最も明白な代替アプローチでは実現できない私の 3 つの目的が達成されると思います。具体的には:
- 型のコンストラクターで計算を実行できます。しかし、これは上記の 2 番目の目的 (初期化が速い) には及ばない可能性があります。
- すべてのプロパティ アクセスに対して計算を実行できました。しかし、これは上記の 3 番目の目的 (将来のアクセスのために計算結果をキャッシュする) には及ばない可能性があります。
そうです、このアイデアは、内部的に変更可能な値型に効果的につながります。しかし、外部コードからわかる限り (私が見た限りでは)、それは不変に見えますが、パフォーマンス上の利点もあります (繰り返しますが、上記の例はこのアイデアの適切な使用法ではないことに気付きました。私が話している利点は、実際にキャッシングを正当化するのに十分なコストがかかる計算に依存します)。
私は何かを見逃していますか、それともこれは実際に価値のあるアイデアですか?
python - Python: リストのリスト内の要素を置き換える (#2)
私のものと同じタイトルの以前の質問が投稿されましたが、同じ質問 (だと思います) が、コードに他の問題がありました。そのケースが私のケースと同一であるかどうかを判断できませんでした.
とにかく、リスト内の要素をリストに置き換えたい。コード:
私は今期待しています:
しかし、私は得る:
なんで?
これは、コマンド ラインで複製されます。Python 3.1.2 (r312:79147、2010 年 4 月 15 日、15:35:48) [GCC 4.4.3] on linux2
c++ - C ++の静的可変メンバー変数?
C++ でクラス メンバー変数を として宣言できないのはなぜstatic mutable
ですか? 何かのようなもの
私にとって、そのような宣言を禁止する理由はありません。たとえば、グローバルなクラス全体の統計を維持するなどの理由で、(論理的に) const メソッドによって変更できる静的変数があると便利な場合があります。したがって、これは C++ の設計ミスのようなもので、不必要に複雑であるか、私にはわからない実用的または理論的な理由があるかのいずれかです。
scala - Scalaの可変メソッドパラメーター
単純な問題:読み取りメソッドを持つScalaでFilterInputStreamをサブクラス化しています:
読み取られるデータはbに入れられますが、パラメーターはScalaメソッドの「vals」であるため、これを適切にサブクラス化する方法がわかりません。読み取るデータにbを設定するにはどうすればよいですか?Java * InputStreamは、私にあまり選択肢を残しません。
java - これはClojureの可変状態の賢明なモナドですか?
私はClojureでモナドを実験していて、次のコードを思いつきました。ここで、モナドの値と状態のペアは、可変のClojuredeftypeオブジェクトで表されます。
オブジェクトは変更可能であるため、常に新しい結果オブジェクトを作成しなくても、モナディックコードを記述できるという利点があるように思われます。
しかし、私はモナドにかなり慣れていないので、知りたいです:
- この構成は意味がありますか?
- それは実際にモナドとして正しく機能しますか?
以下のコード:
scala - scala.collection.mutable.Map に要素を追加するための構文は何ですか?
scala.collection.mutable.Map に要素を追加するための構文は何ですか?
失敗した試みのいくつかを次に示します。
java - Javaで参照として文字列を取得する
だから私はJavaで可変文字列のコレクションを持つことができるようにしたい.
不変の文字列の機能を確認するために、次のテスト クラスがあります。
出力は次のとおりです。
これらの文字列を変更可能として保存するにはどうすればよいですか? String への参照を単純に含む StringObject クラスを持つことを考えていました。これは最良の選択肢ですか?
c++ - const オブジェクトへの変更可能なポインターをどのように定義しますか?
クラス外の定数 VARIANT 値へのポインターを含むクラスがありますが、このポインターを変更して、クラス自体の VARIANT メンバー オブジェクトを参照したい場合があります。
このクラスのほとんどのインスタンスは const になるため、ポインターを変更可能として宣言する必要があります。
Visual C++では、このコードは私が望むことをしているようです:
ただし、ミュータブルはポインタのプロパティであり、ポインティのプロパティではないため、これは正しい構文であると思います。
定数ポインターを定義する方法に似ています (const オブジェクトへのポインターではありません)。ただし、Visual C++ はこのバリアントを受け入れません。
警告 C4518: 'mutable': ストレージ クラスまたは型指定子が予期されていません。無視された
Visual C++ は正しいですか、それとも何か不足していますか? より標準に準拠した別のコンパイラが異なる動作をする可能性はありますか?
java - Spring セッター/ゲッターと可変変数
次のクラスがあることを提案しましょう
Spring または Hibernate Framework に変更可能なゲッターとセッターを使用し、カスタム コーディングに不変のセッターとゲッターを使用することは良い習慣ですか。私が恐れているのは次のことです。
myClass オブジェクト内の日付変数の値を変更しただけで、システムのバグの主な原因になる可能性があります。
私は正しいですか?Spring/Hibernate にも不変のゲッターとセッターを使用できますか?