はじめに
#NO IMAGEThe Rust Programming Language 日本語版 - The Rust Programming Language 日本語版
を読んでいる
お勉強
#NO IMAGEヒープのデータを指すBox<T>を使用する - The Rust Programming Language 日本語版
をやる
- 休日試した電車勉強を出勤でやってみる
メモ
#- 光らなさすぎて再帰的なことという認識しかない
- と思ったら非再帰がでてきてしまった
コンパイラは
Cons列挙子を見ることから始めます。
-
Cons抜かしたので何を言っているかわからなかったので終わった- 調べ直す
-
そうだそうだ、中身が無限に続くやつね
-
あーだから再帰的なのか
-
サイズを決めようとした時に再帰的になり無限ループが起きるところまで理解
-
とりあえず予測する計算に無限ループが起きることを理解した
再帰的に定義された型に必要なメモリ量を計算できないので
- 多分これがすべてで、これのためにポインタ置き場を借りに作るだけか
- コンパイラのための型
- 可変ではなくそれらを参照するポインタを置く型か
より多くのボックスのユースケースは第17章でもお見かけするでしょう
- はい、とっとと次
Derefトレイトでスマートポインタを普通の参照のように扱う
#Boxは型だったからtrait版と予想- 構成的には最初
Boxの説明してこっちに入れ替えるように書くらしい
fn main() {
let x = 5;
let y = &x;
assert_eq!(5, x);
assert_eq!(5, *y);
}
- これ
*yを外したらなんで動かないかわからん
まとめ
#Boxの概要を理解できた- おそらくスマートポインタはコンパイラのためのサイズ計算が無限ループしてしまうのを防ぐための参照
- ここの無限ループがなんで起きるまではわからん
- 軽く調べたら同じ型の中に同じ型入れるだけだった
- 最初からそう書け!!!!
次ここ
NO IMAGEDerefトレイトでスマートポインタを普通の参照のように扱う - The Rust Programming Language 日本語版