Go language part 6 (70レス)
Go language part 6 http://mevius.5ch.net/test/read.cgi/tech/1747750228/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
26: デフォルトの名無しさん [sage] 2025/06/14(土) 22:56:09.38 ID:/OxuSDvW >>22 そこは整理しないといけないと思う(といっても俺はRustは詳しくないが) ・単なる循環参照(親→子→親で、まとめて廃棄可能=寿命が同一のオブジェクト間の相互参照…Rustでも楽勝) ・寿命がバラバラのオブジェクト同士の複雑な相互参照(…Rustで無理なのは多分これ) コールバックの結果に「親」も含めて返し、子としては自分でも参照できるようにしておく、 つまりxhr/fetchで {requester: parent, response: Response} で返せば循環参照自体は発生するが、 基本的にこの手のResponseは各所に回覧して終わり、 必要なら各自コピーとっとけ、で、回覧修了後に廃棄、で何も問題ない だから前者であって、後者の「Rustで苦労するタイプの『循環参照』」にはならない Rustで対応無理なのは、Rustの性質上、(ここらへんからだいぶ間違いが入るかもだが) ・誰が所有権を持ってるのか(=そのローカルで誰が最長寿命なのか) ・誰が借りるのか(=所有権保持者より短寿命) をソース上で確定させないといけないので、 A->Response B->Response とResponseを複数のオブジェクトから参照させる場合、AとBのどちらが寿命が長いか分からないと詰むし、 これらが複雑怪奇に相互参照してる場合、基本的に ・誰が最長寿命なのか(=誰が所有権を持つべきか) が静的に確定してないと詰む、という事(だと思う) http://mevius.5ch.net/test/read.cgi/tech/1747750228/26
34: デフォルトの名無しさん [sage] 2025/06/14(土) 23:59:27.91 ID:V6t1FI0l >>26 Rustでもアリーナ管理すればよいため循環があろうと大丈夫だよ http://mevius.5ch.net/test/read.cgi/tech/1747750228/34
35: デフォルトの名無しさん [sage] 2025/06/15(日) 00:24:06.66 ID:lIZk6VUi >>26 >単なる循環参照(親→子→親で、まとめて廃棄可能=寿命が同一のオブジェクト間の相互参照…Rustでも楽勝) 親→子→親の構造を表現するためにはRc/RefCell/WeakRefの組み合わせみたいなのが必須 何も気にせず全自動でやってくれる言語と比べれば相当面倒くさいよ 要は前者でも後者でも基本同じ >A->Response >B->Response これがAがResponseを参照している、BがResponseを参照しているの意味なら AやBより先に他の誰かがResponseを生成して所有しているはずで その誰かはAやBより長生きするんだから何の問題もないよ Rustだからといって面倒くさくなるパターンでもない http://mevius.5ch.net/test/read.cgi/tech/1747750228/35
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s