問題タブ [setter]
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.
php - PHP: ゲッターとセッターとは?
PHP5のゲッターとセッターとは何ですか?
誰かが説明付きの良い例を教えてくれますか?
actionscript-3 - OOP での C スタイルの構造体の置き換え
私は主にエレクトロニクスのバックグラウンドを持つ学生で、プログラミングを始めています。やり込めば入るほど、自分がいかに下手かを思い知らされます。私はオブジェクト指向の設計を上達させようとしています。私が読んでいることの 1 つは、ゲッターとセッターの使用です。
http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html?page=1 http://Typicalprogrammer.com/?p=23
彼らがここで主張していることは理解できますが、いくつかの単純な問題を回避することはまだできません。そして、これは私の質問につながります(最後に)。学習課題として、AS3 で簡単なタワー ディフェンス ゲームをセットアップしています。敵にウェイ ポイントをたどってもらいたいので、ウェイ ポイントの配列を作成し、それをマップ オブジェクトのプロパティにしました。そして、通過点は、x および y プロパティ (より構造体に似たもの) を持つオブジェクトになることでした。今では、これがまさに記事が思いとどまらせている一種の悪い習慣であることがわかりますが、これを行うためのより良い方法を思いつかないようです. もう少し経験のある皆さんからの助けをいただければ幸いです。
objective-c - Objective-C :: メソッドを使用してオブジェクトを変更する
「カード」を保持するための NSMutableArray* cardSet を含む「CardSet」というクラスがあり、これを拡張して「DeckCards」を作成します。「CardSet」に「(void)addCard:(Card*)」というメソッド (および同様に「removeCard」メソッド) が必要です。カードセットにアクセスして設定する方法に「addCard」を追加したいと思います。さらに良いのは、「addCard」メソッドを使用して cardSet を初期化することです。クラスファイル「CardSet.h」は次のとおりです。
メソッドファイルには次のように書かれています。
これは問題なくコンパイルされます。「addCard」メソッドを 52 回使用して「DeckCards」インスタンスを初期化したいと思います。DeckCards セッター メソッドで addCard を 52 回呼び出し、その「cardSet」のサイズを要求すると、0 が返されます。
これはスコープまたは特権の問題のように見えますか? 「addCard」メソッドにセッター権限を与えることはできますか? セッター引数は、戻り値およびそれぞれのメンバー型と同じでなければなりませんか?
[「DeckCard」の外側に NSMutableArray オブジェクト「deck_cards_temp」を作成し、これに 52 枚のカードを追加して、「CardSet」から継承されたセッターを介して「DeckCards」インスタンスのメンバーを設定するために渡すことで、上記の問題を回避できます。これはあまり満足のいくものではありません!]
何をアドバイスしますか?ご理解とご協力をよろしくお願いいたします。
ruby - Rubyで追加の引数を取るsetterメソッドを作成する
セッターとして機能し、割り当てられた値以外にいくつかの追加の引数を取るメソッドを作成しようとしています。愚かな例:
インデクサーとしてそれを書くことはうまくいきます、そして私はそれをこのように呼ぶことができます:
しかし、私が次のいずれかを試してみると、通訳は文句を言います。
なぜこれが機能しないのですか、私は明白なことを見逃していますか?
javascript - Javascript セッター/ゲッター
上記のコードは、オブジェクトの作成者に (配列で) 提供されたプロパティのセッター/ゲッターを生成することを願っています。
しかし、以下のコードを呼び出すと、ファーストネームとラストネームの両方がオルセンです..何が間違っていますか?
java - スカラセッターメソッド「myvar_$eq(myval)」をJavaでより快適なものにエイリアスするにはどうすればよいですか?
私は最近、自分自身に言語を教えようとして、いくつかのコードをJavaからscalaに変換しています。
このscalaクラスがあるとします。
今、私はJavaからアクセスしたいので、scalaにいる場合のようにドット表記を使用することはできません。
したがって、次のように発行することで、変数の内容を取得できます。
次の方法で設定します。
これは、私たちのPersonクラスがjavapで次のように見えるために当てはまります。
はい、私は自分のゲッター/セッターを書くことができましたが、クラスをそれで満たすことは嫌いであり、すでにそれらを持っていることを考えるとあまり意味がありません-私は_$eqメソッドをより良くエイリアスしたいだけです。(これは、antlrのようなものを扱っている場合、実際にはさらに悪化します。これは、それをエスケープする必要があり、person.name _ \ $ eq( "newname");のようになってしまうためです。
注:クラスをより多くのセッターメソッドで満たすのではなく、これに我慢する必要があります。
では、この状況であなたはどうしますか?
php - アレイの移植性とは何ですか?
このページから:
配列の移植性$obj['property'];
を目的として、Doctrine でオブジェクトのプロパティを参照する推奨される方法であることがわかります。
私はこの用語について聞いたことがなく、グーグルは有用な結果を思いつきませんでした.
それは何ですか?
javascript - javascript配列のゲッター/セッター?
配列でget/set動作を取得する方法はありますか?私はこのようなものを想像します:
c# - get プロパティと setter 関数で .NET XmlSerializer を使用する
私はXmlSerializer
C#から使用して、プロパティによって読み取られるいくつかの値を持つクラスを保存しようとしています(コードはフィールド値の単純な取得です)が、セッター関数によって設定されます(値が変更された場合に呼び出されるデリゲートがあるため) )。
私が現在行っているのは、このようなことです。使用目的は、InT
プロパティを使用して値を読み取り、 を使用して値SetInT
を設定することです。設定には副作用があるため、ここではプロパティよりもメソッドが適切です。XmlSerializationOnly_InT
(名前の由来)のためだけに存在し、XmlSerializer
通常のコードでは使用しないでください。
これは機能し、簡単に実行でき、XML ファイルは期待どおりに表示されます。手作業ですし、ちょっと見苦しいので、少しだけ満足です。私が本当に望んでいるのは、プロパティを使用して値を読み取り、setter 関数を使用して値を設定するように XML シリアライゼーションに指示できるようにすることです。それなら、私はまったく必要ありませんXmlSerializationOnly_InT
。
私はこのようにプロパティ セットとセッター関数を区別することで標準的な慣行に従っているように見えるので、これに遭遇したのは私だけではないと確信しています (Google は私がそうかもしれないと示唆していますが)。この状況で他の人は何をしましたか?XmlSerializer
この種のことをより適切に処理するよう説得する簡単な方法はありますか? そうでない場合、おそらく他の簡単な方法はありますか?
c# - 副作用のないセッターへのアプローチ
副作用のないセッターをどこまで使うかについて、あなたの意見を聞きたいと思います。
次の例を考えてみましょう。
日付と期間の値は、表示のみを目的として示されていることに注意してください。
Start
したがって、いずれかのプロパティにsetterを使用すると、Finish
他Duration
のプロパティが変更されるため、副作用がないと見なすことはできません。Rectangle
同じことがクラスのインスタンスにも当てはまります。ここで、setterforX
はなどの値を変更しTop
ますBottom
。
問題は、論理的に関連するプロパティの値を変更するという副作用があるセッターを使用することと、とにかくこれ以上説明できないメソッドを使用することの間に、どこで線を引くかです。たとえば、呼び出されるメソッドを定義SetDurationTo(Duration duration)
しても、開始または終了のいずれかが変更されることは反映されません。