問題タブ [class-instance-variables]
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.
objective-c - クラスインスタンス変数のObjective-Cパターン?
サブクラスによって「オーバーライド」できるクラス変数について、Objective-C で適切なパターンは何でしょうか?
通常のクラス変数は、通常、クラス メソッドとして定義された公開されたアクセサーと共にファイル ローカルな静的変数を使用して、Objective-C でシミュレートされます。
ただし、これはクラス変数と同様に、クラスとそのすべてのサブクラスの間で値が共有されることを意味します。場合によっては、サブクラスがそれ自体の値のみを変更すると興味深いことがあります。これは通常、構成にクラス変数が使用される場合に当てはまります。
例を次に示します。一部の iOS アプリでは、特定の共通抽象スーパークラス (注釈) の多くのオブジェクトがあり、それらは多くの具体的なバリエーション (サブクラス) になります。すべての注釈はラベルでグラフィカルに表現され、ラベルの色はその注釈の特定の種類 (サブクラス) を反映する必要があります。したがって、すべての Foo 注釈には緑色のラベルが必要であり、すべての Bar 注釈には青色のラベルが必要です。各インスタンスにラベルの色を保存するのは無駄です (実際には、多くのオブジェクトがあり、実際の構成データ (各インスタンスに共通) は単一の色よりもはるかに大きいため、おそらく不可能です)。
実行時に、ユーザーはすべての Foo 注釈に赤いラベルを付けるように決定できます。等々。
Objective-C ではクラスは実際のオブジェクトであるため、Foo クラス オブジェクトに Foo ラベルの色を格納する必要があります。しかし、それは可能ですか?この種のものにはどのようなパターンが適していますか? もちろん、クラスをその構成値にマッピングするある種のグローバル辞書を定義することは可能ですが、それはちょっと見苦しいものです。
ruby - シングルトンモジュールまたはクラスメソッド+Rubyでのシングルトンのような動作のためのクラスインスタンス変数?
シングルトン動作のクラスが必要です。
シングルトンモジュールを使用することの違いは何ですか...
...そしてクラスメソッドとクラスインスタンス変数を使用していますか?
python - None 以外のクラス属性を持つクラスの新しいインスタンス?
class 属性が 以外に設定されている Python クラスがありますNone
。新しいインスタンスを作成すると、その属性に加えられた変更はすべてのインスタンスで永続化されます。
これを理解するためのコードを次に示します。
予想どおり、 returnとfoo.a
returnsを使用します。['item']
foo.b
5
新しいインスタンスを作成するとき (これを と呼びます)、 returnとreturnもbar
使用しbar.a
ます! ただし、最初にすべてのクラス属性をに設定すると、次のように に設定されます。['item']
bar.b
5
None
__init__
bar.a
リターン[]
とbar.b
リターンを使用し2
ながら、foo.a
リターン['item']
とリターンをfoo.b
返します5
。
これはどのように機能すると思われますか?Python をプログラミングしてきた 3 年間、この問題に遭遇したことはないようです。ドキュメントのどこにも見つからないので、可能であれば参考にしていただければ幸いです。:)
python - クラスインスタンスのIDの自動インクリメント
免責事項:これは私が現在取り組んでいる学期のプロジェクトのためのものです。私の質問は、実装レベルの詳細に関するものであり、評価スキームの一部ではありません。私が書く論文のために私が提案している理論をテストする方法として、このコードを書いているだけです。
また、私はこの質問の答えを少し運が悪かったので、これをその質問の複製と見なさないでください。
問題:
グラフがあります(G =(V、E))。アルゴリズムのある時点で、複数のノード(たとえば、v_1, v_2, ..., v_n
)を1つのノード(たとえば)に「折りたたむ」ことによって、これを(ある意味で)ハイパーグラフに変換する必要がありますv
。問題のコンテキストでは、これは、のいずれかのノードと他のノードの間のE
エッジが、現在との間にあるように変更されるように、エッジを変更する必要があることを意味します。e
v_1, v_2, v_n
u
V
e
u
v
ノードの任意のペアの間に複数の異なるエッジが存在する可能性があることをキャプチャするには、各エッジに一意の識別子を作成する必要があります。私はIDを使用してこれを実行しようとしましたが、現在適切に実装できません。
これは私が試したものです:
ただし、新しいエッジをインスタンス化しようとすると、次のエラーが発生します。
編集:
いくつかの回答の提案により、インスタンス化時間エラーを修正することができました。ただし、別のエラーが発生します。これが私のコードとエラーです:
エラー:
助けていただければ幸いです
ありがとうございました
ruby-on-rails - ActiveRecordのクラスインスタンス変数(Ruby On Rails)
モデルクラスに値を格納しようとしています。たとえば、いくつかのチェックボックスの値です。
これらをクラスインスタンス変数に格納できると思いましたが、ユーザーが画面上の他の場所をクリックすると、これらの値はクリアされます。
クラスインスタンス変数の値を維持するにはどうすればよいですか。
例えば
ただし、設定後の@@ageは空のようです。
ruby - クラスとメソッドでクラスインスタンス変数を定義することの違いは何ですか。なんで?
さて、示されているタイトルのように、以下の2つのクラスインスタンス変数の違いは何ですか
と
誰かが私にそれを説明できる人はいますか?どうもありがとうございます。
ruby - Rubyのサブクラスのセットに対して同じクラスインスタンス変数のアクセサーを定義する
スーパークラスとサブクラスのセットがあります。各サブクラスで、同じ名前のクラスインスタンス変数を定義していますx
。これらのクラスの1つにアクセサーを作成するには、サブクラス定義で使用します。
すべてのサブクラス定義でこれらの同じコード行を使用することは避けたいと思います。しかし、これをスーパークラス定義に入れると、スーパークラスのインスタンス変数のアクセサーを定義しませんか?それは私が望んでいることではありません。すべてのサブクラスのクラスインスタンス変数のアクセサーを1か所で定義する方法はありますか?
ruby - Rubyのクラスは、@@class_variableではなく@class_instance_variableを使用して、インスタンス化されたオブジェクトの数を格納できますか?
それらのオブジェクトを定義するクラス内で、特定のクラスのオブジェクトのインスタンスの数を保持しようとしています。
まず第一に、私はコード リフレクションと ObjectSpace.each_object を認識していますが、リフレクションを使用せず、クラス自体がそれ自体を「管理」できるようにしたいと考えています。
私が見回したところ、見つかったすべてのソリューションは、たとえば、この質問に対する受け入れられた回答のように、クラス定義で @@class_variables を使用しているようです: Rubyでクラスインスタンスを取得する方法?
しかし、読み続けていると、ルビーのクラス変数が状況によっては非常に悪い動作をすることがあることがわかりました...最大の理由は次のとおりです。
プログラムのトップレベルで定義されたクラス変数は、すべてのクラスに継承されます。グローバル変数のように動作します。
ソースと詳細情報はこちら: http://ruby.runpaint.org/variables#class
それで、クラス変数の代わりにクラスインスタンス変数を使用して、インスタンス化されたオブジェクトの数を内部に格納するクラスをコーディングしようとしましたが、どうやらうまくいくようですが、この「深い」言語についてまだ学んでいるので私が書いたコードが正しいかどうか、および/または意味があるかどうかをお尋ねしたいトピック:
私の疑問の 1 つは、Pizza.new メソッドをオーバーライドすると、元の .new メソッドのいくつかの重要な機能が「削除」されることですか? (元の .new メソッドは何を提供しますか?? リフレクションを使用してメソッド コードを「検査」するにはどうすればよいですか?) 他に間違っていること、または私のアプローチで完全に間違っていることとその理由は?
ありがとう
編集:この重要なビットを追加するのを忘れました:
範囲をより適切に制限する方法として、Pizza クラスがオブジェクトのインスタンス化時にのみカウントできるようにし、コード内でいつでもアクセスできる @instance クラス変数にセッター メソッドを持たないようにしたいと考えています。 (Pizza.count = 1000)。そのため、「new」をオーバーライドしようとしていました。
これは、自分のアプローチが正しい方向に進んでいるのか、または単にこれらの言語メカニズムにあまり依存するのをやめて、オブジェクトがPizza クラスが ObjectSpace に入りました。
私は、言語機能を使用してこれを取得するための、よりエレガントで肥大化していない方法を探しています..
どちらの場合でも、助けていただければ幸いです..
再度、感謝します。
c# - インスタンス化された封印されたクラスのパブリックメンバーへのアクセス
私は自分のプログラムでパブリックsealed
クラスを開始しようとしていますが、
問題は、...私はまだ開発者ではないので、この問題は少し難しいと思います...C# .net
質問の問題については、プログラムの例に直接スキップするか、次の背景を読むことができます。
DB_Schemaはnamespace
、私が作成した、データアクセスを処理するためのヘルパーです。
(tables
AndSP
の名前..etc'を保持します)
そのクラスの1つ(以下)はを扱いStored Procedures
、これはSPパラメータの名前を保持します
- プログラムでの使用法:
SPを介したデータアクセスのメソッド内
インスタンス()メンバーの1つにアクセスしようとするSProcGetCpa
ことは、私が試した方法では不可能です。
私はクラスを作ることができましたSProc
+それはサブクラスでUpdateCPAReport
はなく sealed
...
しかし、私が質問を検索していたとき、「封印されたクラスをインスタンス化できますか?
ええと..答えはイエスです...エラーに関する情報を見つけようとしていますが:
インスタンス参照ではアクセスできません。代わりにタイプ名で修飾してください
結果は得られません。また、私のような新鮮な.net C#arpersではなく、インスタンス化されたパブリックメンバーコードにアクセスsealed class
する例もありません。
-更新
長い行を避け、ストアドプロシージャ名を表す文字列にカスタムの短い名前を付けたいと思いました
それ以外の
アップデート2
答えを求めているこの主題に関する将来の来訪者のために
私たちの親愛なる友人によって提案されたように、ここStackOverflowで
クラスに短い名前を付ける必要がある場合、現在の人々にそれらを使用するとき:
これをプロジェクトusing
の中に配置するだけです
ruby - Ruby クラスのインスタンス変数とクラス変数
https://stackoverflow.com/questions/826734/when-do-ruby-instance-variables-get-setを読みましたが、いつクラスのインスタンス変数を使用するかについて 2 つの考えがあります。
クラス変数はクラスのすべてのオブジェクトで共有され、インスタンス変数は 1 つのオブジェクトに属します。クラス変数がある場合、クラス インスタンス変数を使用する余地はあまりありません。
誰かがこれら2つの違いとそれらをいつ使用するかを説明できますか?
コード例を次に示します。
更新:今わかりました!クラス インスタンス変数は、継承チェーンに沿って渡されません。