Go language part 6 (70レス)
Go language part 6 http://mevius.5ch.net/test/read.cgi/tech/1747750228/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
27: デフォルトの名無しさん [sage] 2025/06/14(土) 22:56:41.09 ID:/OxuSDvW ただ、この辺、単純にAとBの両方より確実に寿命の長いCを定義し、 C->Response として、Cの廃棄でResponseも廃棄させればいいだけで。 (この書き方では意味不明だが、単純には、ただの入れ子で func C(Response){ // C:関数ローカルのスコープ // A->Response としての処理 // B->Response としての処理 } // func 終了タイミングでResponseを破棄してもA->ResponseとB->Responseの処理は終わってるので問題なし と、要するに、寿命を強制的に入れ子にするだけ) 俺的に、 ・回覧方式で、回覧終了後に破棄する前提なので、必要なら各自コピー取れ ・寿命は入れ子で、最長寿命の親が一人居るから、それ以外の連中は寿命を気にする必要ない のどちらかで対応できないケースはなく、どちらかにすることも大して難しくないので、Cで十分という結論になってる この辺は原理的にも当たり前で、 変数自体の寿命が「どこかのローカルで入れ子」で、最外(=最長)が「グローバルでアプリと同じ寿命」なので、 変数に代入してる限り、代入されるオブジェクトもそれ以上の寿命になりようがない だから代入してる時点で、「これまで代入(参照)された最長変数(オブジェクト)よりも寿命が長いか」が確定してれば ・長い場合→所有権を渡す ・短い場合→所有権を渡さない と明示的にやるのがRustで、黙ってプログラマが勝手に管理しろ、というのがCであるだけ だから代入(参照)時点で寿命が確定出来ない場合、Rustは詰むのだが、 原理的に、代入先(=変数/参照元)の寿命は確定してるから、これはない 結果、GCがないと現実的に無理なことは「存在しない」というのが俺の見方 ただtscはやりまくってるのだから、何かcyclicを使えば大幅に手抜きが出来るケースがあるのか?という事 http://mevius.5ch.net/test/read.cgi/tech/1747750228/27
28: デフォルトの名無しさん [sage] 2025/06/14(土) 23:10:53.20 ID:0RGMG9ga >>27 回避可能か不可能かの問題ではない 移植にあたっては、絶対に既存の挙動を変えないために、一行一行単位の逐次翻訳を行なっている Rustでそれができると思うならアンダース氏に凸撃してきたらいい http://mevius.5ch.net/test/read.cgi/tech/1747750228/28
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s