- プログラミング言語 Rust
744 :デフォルトの名無しさん[sage]:2016/09/05(月) 04:26:39.10 ID:bW8nsrgc - 手動メモリ管理した経験のある人間ならすぐ理解できる
だって今まで脳みそのなかでやってたことだもん GC付き言語しかまともに使ったことないなら丸きり新概念だろうけど
|
- プログラミング言語 Rust
745 :デフォルトの名無しさん[sage]:2016/09/05(月) 04:46:12.11 ID:bW8nsrgc - メモリ管理の素養がないと、あの難解なコンパイルエラーしか手がかりがないので挫折すると思う
コードを見て「そりゃ動かんわな」と分かると話が早い まあどのみち、一旦飲み込めれば 実際のコーディング時にはそこまで頭を悩ませないものだよ
|
- プログラミング言語 Rust
754 :デフォルトの名無しさん[sage]:2016/09/05(月) 23:12:42.80 ID:bW8nsrgc - この言語、自前でデータ構造書くのは所有権に慣れるいい方法とはいえない
ある程度理解してからこういうチュートリアル片手に挑戦してみるといい http://cglab.ca/~abeinges/blah/too-many-lists/book/ >>751 木構造とかよく分からないんだがこんな感じかな https://play.rust-lang.org/?gist=127694a578c60aa5481e7eb40fddac50 使う時は let new_node = node.rotate_l(); &mut selfがmut selfになってるのに注意 前者だと呼び出し元がselfを所有しているので、メソッド内でムーブできない あるいは、&mut selfなメソッドが良いなら https://play.rust-lang.org/?gist=729d6a8207ea6b996ec4fdba8247efbe Option型のtake()メソッドはOptionをNoneで上書きして中身を返す関数 所有していないselfをムーブすることは出来ないけど、&mutなので書き換えるのは自由 どちらもマシン語の段階では同等になる筈だから状況や好みに応じてどうぞ
|