問題タブ [cyclic-reference]
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.
java - Java 循環参照とガベージ コレクション
次の 2 つの循環参照の例を考えてみましょう。
簡単な循環参照
@Jon Skeetが回答した次のSO の質問は、既知のルートからサイクルへの「GC ウォーク」が存在しない限り、単純な例でもガベージ コレクションが行われることを明確にしています。
私の質問は次のとおりです。
例 2 に示されているイディオム (WeakReference を使用するイディオム) を使用する、または使用しない理由はありますか?
oop - 循環依存: これらのクラスは結合できないのはなぜですか
Thing
いくつかの変数を持つクラスがあります。FileHandler
また、データをログ ファイルに記録するクラスもあります。
はのFileHandler
インスタンス化に固有でThing
あり、 のインスタンス変数のいくつかを出力する必要がありますThing
。したがって、Thing
にインポートされFileHandler
ます。
OtherThing
も必要な別のクラス がありますFilehadler
。残念ながら、 と の性質に特有の理由でインポートされThing
ます。これは、 importと import が順番に import をインポートすることを意味します。 OtherThing
Thing
OtherThing
FileHandler
Thing
Thing
OtherThing
FileHandler
これらを引き離すことはできないようです。コメントに応じて、この投稿にさらに追加します。ここでクラスを分離できない明らかな理由はありますか? これは、3 つのクラスで必要な共通データがあるためと思われます。
javascript - イベントハンドラー関数で循環参照が機能しないようです
というオブジェクトがありますpaperClass
(知っていても、JavaScript にはクラスが存在しません)。これには への参照が含まれていdivElement
ます。さて、ホバリングするdivElement
ことで、オブジェクトへの参照を取得したいと思いpaperClass
ます。私は次の方法でそれを試しました:
.attr()
と$data()
メソッドも試しました。残念ながら、私は成功しませんでした。あなたはなにか考えはありますか?
c# - 参照を追加しようとしたときの c# での循環依存の問題
2 つのクラス ライブラリがあります (LibA と LibB としましょう)。LibA は LibB のいくつかの機能を使用しているので、LibA に LibB の参照を追加します。
ここで、LibB も LibA のコードを使用する必要があります。循環依存関係のため、LibA の参照を LibB に追加することはできません。LibB が LibA のコードにアクセスできるようになったので、何ができますか?
c++ - C++ クラス メソッドの前方宣言
ここまでしか宣言されていないメソッドを定義するためにクラスを再宣言する方法はありますか?
例えば。何かのようなもの:
それ以外の
その理由は、ヘッダーを使用せずに、クラス定義内で定義されたメソッドを使用して多くのコードを作成したためです。今まで循環参照はありませんでしたが、最近必要になりました。Type::method
クラスの後者の定義の前に知っている必要があるメソッドはごくわずかであるため、構文によってメソッドの束を定義するのは好きではありません。
backward declaration
そのため、循環参照の前にいくつかのメソッドのみを宣言または定義し、後でクラス全体を定義するのが好きです。
rust - Rust で包含構造体を参照する (およびそのメソッドを呼び出す)
編集者注: このコード例は、Rust 1.0 より前のバージョンのものであり、構文的に有効な Rust 1.0 コードではありません。このコードの更新されたバージョンではさまざまなエラーが生成されますが、回答には依然として貴重な情報が含まれています。
Rust でコンテナー構造を作成しようとしています。その要素には、含まれているコンテナーへの参照も格納されているため、メソッドを呼び出すことができます。私が理解できる限り、これを介して行う必要がありますRc<RefCell<T>>
。これは正しいです?
これまでのところ、次のようなものがあります。
ここで何かが欠けているように感じます。のコンテンツにアクセスするのはRc<RefCell<T>>
本当に難しいですか ( でpoke_container
)? それとも、私は間違った方法で問題に取り組んでいますか?
最後に、アプローチが正しいと仮定すると、フィールドに入力できるようにメソッドを作成するにはどうすればよいですadd
か(フィールドをタイプに変更したと仮定しますか?私が知る限り、別のメソッドを作成することはできません.Container
container
Element
Option<Rc<RefCell<T>>>
Rc
&mut self
c# - c#プロジェクトでこのサイクルの依存関係を解決するには?
プロジェクト (1) (Windows サービス) を変更しています。私はユーティリティ プロジェクト (2) を与えられました。これは私のプロジェクトです。理由はわかりませんが、これ (2) はConfigurationManager.AppSettings[]
、独自の XML 構造が必要だったので、プロジェクトでカスタム構成リーダーを使用して初期化しています。このユーティリティには、コンストラクターまたはメソッドを使用して初期化するオプションはありません。
このユーティリティをあまり変更したくなかったので、AppSettings を使用してこの初期化を (1) の構成クラスに変更しました ((2) から (1) への依存関係を作成することにより)。私はこれがそれについて行く方法ではないことを知っています。ソリューションをきれいにすると、めちゃくちゃになります。
いくつかの方法を考えることができました。しかし、どちらが正しいアプローチになるかわかりませんか?
- 別の構成ファイルを用意する
- 循環依存を続ける
- パラメータを渡し、ユーティリティを変更する
- (パラメータが多すぎます)すべての値を文字列として渡し、ユーティリティにロジックを記述してそれらを元に戻す必要がありますか?
プロジェクト1
プロジェクト 2
c++ - 名前空間内のクラスの循環依存の問題
循環依存の問題があります。2 つのヘッダー ファイルがあり、それぞれが相互に依存しています。私が抱えている問題は、名前空間内のクラスに関係しています。
ファイル #1
ファイル #2
ファイル #2 で sef::Sub クラスを前方宣言するにはどうすればよいですか?