問題タブ [mutators]

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

oop - 取得および設定する関数を何と呼びますか?

jQuery フレームワークには、渡されたパラメーターに応じて値を取得または変更する多くの関数があります。

このように動作する関数の標準名はありますか?

0 投票する
2 に答える
201 参照

c++ - C++ プログラムの設計に関する質問

私が参加した最近のいくつかのプロジェクトでは、次のコーディング パターンにはまっています: (これに適切な名前があるかどうかはわかりませんが、とにかく...)

あるオブジェクトが何らかの決定された状態にあり、この状態を外部から変更したくないとしましょう。これらの変更は、任意の動作を意味し、任意のアルゴリズムを呼び出す可能性がありますが、実際には、オブジェクトの状態(メンバー状態、データ状態など)の変更に焦点を当てています。

そして、これらのオブジェクトを変更する 1 つの個別の方法を a と呼びましょうMutatorMutatorsは一度(一般的に)適用され、のような内部メソッドがapply(Target& target, ...)あり、オブジェクトの状態の変更を即座に引き起こします(実際、それらはある種の機能オブジェクトです)。

また、チェーンに簡単に同化して、1 つずつ適用することもできます ( Mutator m1, m2, ...)。BasicMutatorまた、いくつかの基本的なwithvirtual void apply(...)メソッドから派生させることもできます。

アクセスの点で異なる と というクラスを紹介しました。まず、オブジェクトの内部状態を変更することもできInnerMutator、フレンド( )として宣言する必要があります。ExplicitMutatorfriend InnerMutator::access;


これらのプロジェクトでは、私のロジックは次のように機能するようになりました。

  1. 利用可能なミューテーターを準備し、適用するものを選択します
  2. を作成し、object特定の状態に設定します
  3. foreach (mutator) mutator.apply(object);

今質問です。

このスキームはうまく機能するようになり、 (私には)非標準だが有用な設計パターンのサンプルのように思えます。

私が不快に感じるのはそのようなInnerMutatorものです。状態を変更できるすべてのオブジェクトに対してミューテーターをフレンドとして宣言することは良い考えではないと思います。また、適切な代替手段を見つけたくありません。

この状況は解決できますか、Mutatorsそれとも同じ結果になる別のパターンをアドバイスしてもらえますか?

ありがとう。

0 投票する
4 に答える
64512 参照

python - 追加すると、リストが NoneType になります

Python Shell で、次のように入力しました。

そして得た

しかし、私が試したとき:

そして得た

誰が何が起こっているのか知っていますか?どうすれば修正/回避できますか?

0 投票する
2 に答える
824 参照

python - アルファベット順にソートされた if ステートメントが機能しない

以下の if 文にはどこかに問題があり、それを理解できません。正しく機能しない原因となっている可能性のある規則やメソッドの誤用はありますか? checkList はユーザーが入力した文であり、lis は単語の大きなリストです。

0 投票する
9 に答える
1629 参照

c++ - 非 const 参照ゲッターを提供することは理にかなっていますか

クラスメンバーの一部を公開する必要がある場合があります。たとえば、次の例では、コンポーネントへのclass Mechanic直接アクセスが必要になる場合がありEngineます。いくつかの理由から、すべてのフィールドにミューテーター (アクセサー) メソッドでアクセスする必要があることを何度も読みました。しかし、非 const 参照ゲッターを提供する場合に利点はありますか:

エンジンコンポーネントを公開するだけではありません:

この例が気に入らない場合は、publicに置き換えることもできます。protected実生活では、System.inまたはに関しては Java に似たものがありますSystem.out。一部の人々の言うことに完全に準拠するには、 のような呼び出しを実行する必要があるようSystem.getInstance().getOut().println("hello world")です。そのような場合、多くの官僚的なコードを除いて、何のメリットもありません。

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

objective-c - Objective-C のプロパティでミューテーターが非公開のままである間のみ、アクセサーを公開する

いくつかのインスタンス変数を持つクラスがあり、これらの i-vars をドット表記プロパティを介して「読み取り専用」で使用できるように公開したいとしますが、同時に、クラス内でプロパティ ミューテーターを使用できるようにするにはドット表記。

問題は、.h ファイルで次のように宣言していることです。

次に、ミューテーターを自分で書いている場合でも(-(void) setMyIvar:)、プロパティが読み取り専用であるとコンパイラーが(当然のことながら)不平を言っているため、ドット表記で使用することはできません。

次のように、.m ファイル (インターフェイス拡張内) でプロパティを再宣言しようとしました。

しかし、コンパイラはこの二重宣言を受け入れませんでした。

それを行う方法はありますか?

0 投票する
2 に答える
6986 参照

class - アクセサーとミューテーターを使用して単純なクラスを作成する

私はJavaの初心者です。データメンバーの名前と単位時間を持つ、Courseという名前の非常に単純なCourseクラスのJavaクラスを作成するように依頼されました(例:「プログラミングとロジックI」、4)。クラスには、各属性のアクセサー(つまり、get)メソッドとミューテーター(つまり、set)メソッドと、データメンバーの名前とクレジット時間を初期化するオーバーロードされたコンストラクターを少なくとも1つ含める必要があります。

これは私が今まで持っていたものですが、私は遠く離れていると信じており、私の脳は今は働きたくないだけです。

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

java - 1 つのメイン メソッドに結合された Java メソッドを取得する際の問題

私はすでに次のものを持っています:

以下のこの部分は、私が問題を抱えている場所です。

私が問題を抱えているのは、これらを組み合わせるだけです。

0 投票する
2 に答える
642 参照

java - ループで構築されたものに対する Java mutator メソッド

だから私はループで構築したクラスを持っています。コンストラクターには、円の「グリッド」を作成する 2 つの while ループがあります。授業用のマフラーのはずですが、かっこいいのでチェーンメイルと呼んでいます。とにかく、別の (クライアント) クラスでスカーフの色を変更できるはずです。色を変更するには、明らかに mutator メソッドを追加する必要があります。幸いなことに、objectdraw には setColor() という名前のミューテーターがあります。このクラスに追加しようとすると、グリッドの最後の円のみが変更されることを除いて、問題なく動作します。なぜこれが起こるのかはわかっていますが、それを修正する方法がわかりません。クラスで使用している「典型的な」ミューテーターをコメントアウトしました。

編集:混乱してすみません...これは単なるクラスです。新しいChainMail()を呼び出してから.setColor()を実行するクライアントがありますが、すべてではなく最後のframedovalのみを変更します。それが問題だ

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

c++ - 親のC++関数は子を返します

親クラス()といくつかの子クラス()があるthisように、jQueryを可能にするためにクラス内のミューテーター(セッター)を戻したいと思います。ほとんどのもののミューテーターはクラスから継承されますが(名前やアドレスなど)、オブジェクトを返すため、クライアントミューテーターを呼び出すことはできません。a.name("something").address("somethingelse");EntityClient, Agent etc.EntityEntity

言い換えると:

それから私がそれを呼ぶとき:

コンパイラーは(論理的に)、EntityオブジェクトにはbudgetRangeメンバーがないと言います(nameはClientではなくEntityを返すため)。

今の私の質問は、どうすればこのようなものを実装できますか?子クラスのすべてのエンティティ関数をオーバーロードすることを考えましたが、それは良くなく、継承の考えに反するでしょう:)

よろしくお願いします:D