問題タブ [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.
f# - F#でプロパティを適切に実装するにはどうすればよいですか?
私の最初の試み、次のようなF#の単純なタイプを考えてみましょう。
ここで、C#を介してこれをテストします(このオブジェクトはC#プロジェクトに公開されているため、明らかなC#セマンティクスが望ましいです)。
propName
が適切に割り当てられ、F#Setterが実行されていますが、の基になる値がprop
変更されていないため、2番目のアサートが失敗しています。mutable
この種の意味は、フィールドから削除してprop
もエラーが生成されないためです(値を変更しようとしているため、エラーが発生するはずです)。基本的な考え方が欠けているに違いないと思います。
単体テストに合格できるようprop
に、クラスで再バインド/変更する正しい方法は何ですか?Test
ruby - MatzがRubyでデフォルトで文字列を可変にすることを選択したのはなぜですか?
これは、この質問の逆です。Javaと.NETで文字列を変更できないのはなぜですか。
この選択は、操作(追加など)が可変文字列で効率的であるという理由だけでRubyで行われたのですか、それとも他の理由がありましたか?
(効率だけの場合、Rubyの設計は効率的な実装の促進に高い重点を置いていないように見えるので、それは独特に思えます。)
python - Pythonランダム関数は、リストに割り当てられた場合、または直接呼び出された場合、動作が異なります。
位置固有のスコア行列を表す辞書をランダム化するPython関数があります。例えば:
詐欺機能:
ここで問題が発生します...行列を直接スクランブリングしようとすると、正常に機能します。
与える:
しかし、このスクランブリングをリストに割り当てようとすると、機能しません!!! ..。
結果:
何が問題ですか??? 初めてスクランブリングが機能せず、すべてのリストが同じマトリックスで埋められているのはなぜですか?!
equals - IEquatable の実装方法可変フィールドが等価の一部である場合 - GetHashCode の問題
アプリケーションで Entity Framework を使用しています。
IEquatable<T>
インターフェイスのエンティティの部分クラスで実装しました。
私のコードでは、次のように使用しています。
EntityCollection クラスはそのエンティティを HashSet に格納するため、GetHashCode 関数と関係があることに注意してください (デバッガ ビジュアライザで確認しました)。エンティティが ID で比較されるように、ID に依存するようにします。
問題は、保存を押すと、ID が 0 からその db 値に変わることです。したがって、問題は、適切にハッシュされた同等のオブジェクトをどのように取得できるかです。
GetHashCode 関数の何が問題なのか (ID で)、それを機能させるために何を変更すればよいかを教えてください。
どうもありがとう。
python - 「変更可能なデフォルト引数の修正」構文が非常に醜いのはなぜですか、Pythonの初心者に尋ねます
私の一連の「python初心者の質問」に従い、別の質問に基づいています。
特権
http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variablesに移動し、「デフォルト パラメータ値」までスクロールします。そこには、次のものがあります。
これとまったく同じ例でpython.orgに「重要な警告」さえありますが、実際には「より良い」とは言っていません。
それを置く1つの方法
ここでの質問は、「エレガントな構文」と「使いやすい」を促進するプログラミング言語のように、既知の問題に対する「良い」構文がなぜ醜いのかということです。
編集:
別の言い方
なぜ、どのように起こるのかは尋ねていません(リンクをくれた Mark に感謝します)。
言語に組み込まれているより単純な代替手段がない理由を尋ねています。
より良い方法はおそらくそれ自体で何かを行うことができると思います.namedef
引数は、変更可能なオブジェクト内の「ローカル」または「新しい」にアタッチされdef
ます。何かのようなもの:
誰かがより良い構文を提供できると確信していますが、これが行われていない理由については、非常に適切な説明があるに違いないと思います。
python - 単純な python oo の問題
この簡単な例を見てください。o1 が「Hello Alex」を 2 回出力する理由がよくわかりません。デフォルトの self.a のため、常に空のリストにリセットされると思います。誰かがここでの理論的根拠を説明してもらえますか? どうもありがとう。
c++ - 変更可能なメンバーへのポインタを作成するには?
次のコードを検討してください。
コンパイラはエラー メッセージを生成します。問題は、メンバーm
が可変であるため、変更が許可されていることm
です。しかし、関数シグネチャは変更可能な宣言を隠しています。
このコードをコンパイルするためにポインターから可変メンバーへのデカルを行う方法は? それが不可能な場合は、標準 C++ にリンクしてください。
iphone - Plist配列、内部の辞書を変更できません
私はそのルートに辞書を含む配列であるplistを持っています。
私は自分のリコースからplistをNSMutableArrayとしてロードします。
スタートアップ間で永続化する必要があるため、nsuserdefaultに保存します。
しかし、配列内の辞書は変更できないため、変更できません。どうすればそれらを可変にすることができますか?
python - セットのリスト内の要素に値を追加します
私はPythonを使用しており、次のように構成されたセットのリストがあります。
...ここで、nはリストに必要なセットの数です。リスト内の特定のセットに値を追加したい。言う、2番目のセット。私は試した
ただし、これにより、リスト内の各セットに値が追加されます。この振る舞いは私にはかなり直感的ではありません。さらなるテストを通して、私は問題を発見したと思います。リストには、同じセットの10個のインスタンス、または同じセットへの10個のポインターなどが含まれているようです。の繰り返し呼び出しによるリストの作成
上記の構文を使用して、単一のセットに要素を追加することができました。だから私の質問はこれです:私の最初のリスト構築技術で正確に何が起こっているのですか?構文がよくわからないのは明らかです。また、n要素リストを初期化するためのより良い方法はありますか?私はこの構文をしばらく使用してきましたが、これが私の最初の問題です。
java - Javaに書き込み可能なイテレータはありますか?
C +では、シーケンスへの書き込みにイテレータを使用できます。最も簡単な例は次のとおりです。
もっと複雑なものが必要です。後で使用できるように、イテレータをクラスメンバーとして保持してください。しかし、Javaイテレータからこの動作を取得する方法がわかりません。
Javaに書き込み可能なイテレータはありますか?
そうでない場合、それらを置き換えるものは何ですか?