[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/03 06:17 / Filesize : 249 KB / Number-of Response : 1028
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミング言語 Rust 4



705 名前:デフォルトの名無しさん [2018/01/15(月) 14:29:56.48 ID:w3dU/zjB.net]
ところで全く話変わるんだけど。
最近Rustの勉強をしてるんだけど、まだ慣れないし、C++もあまりやってこなかったので、
俺のバカな頭じゃ理解できないことがいっぱいあるから誰か教えて。

質問1
Rustってimmutable参照は複数持てるけど、mutable参照は1つしか持てない決まりになってるよね。
それってたぶんマルチスレッドのことを考えてそうなってるんだよね?(この時点ですでに勘違いしてる?)
けどRustではSyncトレイトとSendトレイトを実装してない限り、スレッド間で変数の受け渡しできないんだよね?
これって逆に言えばSyncとSendを実装してない場合はシングルスレッドなんだからmutable参照が複数あっても問題ないんじゃないの?
なんでマルチスレッドを全く使わないコードを書いてる時でもmutable参照は1つだけしか使えないの?
SyncトレイトとSendトレイトについてなんか勘違いしてる?

質問2
Rustで木構造やグラフ構造を定義する時に循環参照(子が親の参照を持ちたいとか)する時って、たぶんRcとWeakを使うことになるよね?
そして木構造を可変にしたいときはさらにRc<RefCell<T>>って形になるよね?
このRefCell使うとボローチェッカの制約をコンパイルエラーじゃなくて実行時にパニックするように変わるんだよね?
こうするしかないのはRc<RefCell<T>>使わずに木構造を作ろうとして執行錯誤したけど無理だったからそうするしかないんだなと思って納得したんだけど、
RefCell使っちゃうとボローチェッカが効かなくなるからせっかくRustを使ってるメリットが無くなったような気がしてくるんだよね。
それでもRustを使うメリットって何?
RefCell使ってるとこ以外はボローチェッカが効くんだからunsafeコードと同じようにラッパーで包んでやれば上位層に悪影響は出ないよねってこと?
それともC++とかで同じように木構造を作ると、Rustだと単純にパニックするだけだけど、C++だとデバッグがメチャクチャ困難なバグになったりするの?
たとえRefCellを使っていたとしてもRustを使うメリットはし






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<249KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef