- 1 名前:デフォルトの名無しさん mailto:sage [2021/06/17(木) 00:24:12.56 ID:NvYoNP9C.net]
- 公式
https://www.rust-lang.org/ https://blog.rust-lang.org/ https://github.com/rust-lang/rust Web上の実行環境 https://play.rust-lang.org 日本語の情報 https://rust-jp.rs/ ※Rustを学びたい人はまず最初に公式のThe Bookを読むこと https://doc.rust-lang.org/book/ ※C++との比較は専用スレへ C++ vs Rust https://mevius.5ch.net/test/read.cgi/tech/1619219089/ 前スレ Rust part10 https://mevius.5ch.net/test/read.cgi/tech/1617367084/
- 1002 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 15:50:18.44 ID:tu56M8w7.net]
- ownershipが1つしかない状態を維持しつつownershipが0になったら(確実に)解放する感じ
ownershipはどこかの変数が直接的or間接的に保有してて 同じリソースに複数のownershipが発生しないように 代入とか関数の受け渡しでmoveしたりborrowしたりする 少し逸れるけど解放処理を必要としないデータはCopy可能な場合が多い ownershipは「所有権」て訳されるけど意味的には「解放権」とか「解放責任」に近いかも
- 1003 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 16:38:09.46 ID:Cd1Pd2YU.net]
- >>977
公式の見解を個人の感想と一緒にするなよ
- 1004 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 17:46:18.00 ID:uCQTu6bl.net]
- Rustで循環参照作るの簡単とか言ってるやつは100%エアプだからほっといてやれ
他言語での経験をあたかもRustで経験したかのように語りたかったんだろう
- 1005 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 18:15:27.00 ID:otdRB8MX.net]
- >>985
メモリリークの原因になるかどうかを別にすれば、循環参照自体は普通に簡単に生じるだろう
- 1006 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 18:45:16.53 ID:tu56M8w7.net]
- unsafeでポインタ使えば簡単だろうけどライフタイムのある参照の循環は大変そう
'a > 'bと 'b > 'aを両立は不可能に見えるけど何か抜け道あるのかな
- 1007 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 18:55:37.63 ID:SZKxopPy.net]
- 循環参照どころか連結リストも荷が重い
- 1008 名前:デフォルトの名無しさん [2021/08/24(火) 19:43:21.83 ID:KCG/N/Sb.net]
- >>983
なるほどサンクス リージョン理論に線形論理を上手く組み合わせて、cycloneとかの欠点を克服したrustってすげーなあ とはいってもそもそも二重開放してエラーになるというのがピンとこない free(a); free(a); は二重解放しているように見えて合法だろ? 一度目のfreeでaにNULLが代入されて、二度目のfreeでは引数がNULLの場合はそのままreturnって処理されるんだから、理論上は何度free使ってもエラーにならないじゃないか
- 1009 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 19:58:14.02 ID:Mn5s1DvN.net]
- 何の話? C?
- 1010 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 20:39:00.27 ID:972JwtmU.net]
- >>980
>Rustで循環参照が起きるにはRc利用が必須 RcだけじゃなくRcとInterior Mutabilityが必須 (どちらか片方はmutableじゃないと循環させられないので) >Weak(弱参照)を適切に上手く用いて循環参照を避けるのが大変な場合もあるが Rustの場合は循環参照で意図通り動くコードを書くのに比べれば 弱参照に変更するのはすごく簡単 循環参照を修正してる例 https://github.com/DataDog/glommio/commit/677fe1dfbaf911245fbc5c3eef75532d08d784bf https://github.com/KWARC/rust-libxml/commit/bd4b120b90b2568ca6d5bfaa368a200573b87d09
- 1011 名前:デフォルトの名無しさん [2021/08/24(火) 20:58:14.10 ID:joymTvc2.net]
- すまんが、複数のファイルにソースを分割する練習教材みたいなものがあったら教えてくれんか?
- 1012 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 22:56:02.07 ID:972JwtmU.net]
- 次スレ
https://mevius.5ch.net/test/read.cgi/tech/1629813327/
- 1013 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 23:03:55.04 ID:PednkAUi.net]
- >>992
「book」にもモジュールの章がある。
- 1014 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 23:31:00.93 ID:OsSSnb/8.net]
- >>987
RcとRefCell使えば数行
- 1015 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 23:45:46.97 ID:MkJE9y3A.net]
- 循環によって現れるメモリリークは Rust が提供する「メモリ安全」を損なわないと定義されている。
Rust は循環参照を防がないし、メモリリークに対処するのはプログラマの責任。
- 1016 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 00:57:06.67 ID:3XgQgETH.net]
- >>992
もう見てるかもだが www.sheshbabu.com/posts/rust-module-system/
- 1017 名前:デフォルトの名無しさん [2021/08/25(水) 01:28:54.33 ID:6n+Di1sM.net]
- >>990
c
- 1018 名前:デフォルトの名無しさん [2021/08/25(水) 01:29:12.12 ID:6n+Di1sM.net]
- うんこ
- 1019 名前:デフォルトの名無しさん [2021/08/25(水) 01:29:33.60 ID:6n+Di1sM.net]
- 1000ならここにいるやつら全員失職
- 1020 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 69日 1時間 5分 21秒
- 1021 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|