ポインタ型
型&String(レフストリング)は、String値への参照で、&i32はi32値への参照です。 i32への参照は、そのi32のアドレスを保持した1ワード超のデータとなる。 i32がスタックに置かれていても、ヒープに置かれていても構わない。
&xはxへの参照をするが、Rustの用語では、これを「xへの参照を借用する」という。 参照rに対して、式*rは、rが指す値を取得する。
&T: 変更不能な共有参照。 参照先の値を書き換えることはできない。 Cのconst T*に相当する。
&mut T: 排他的な可変参照。 参照先の値を読み出し、変更することができる。 CのT*に相当する
Box::newはヒープに値を確保します。
let t = (12, "eggs");let b = Box::new(t);tの方は(i32, &str)なので、bの型はBox<(i32, &str)>となる。
rawポインタ
Section titled “rawポインタ”*mut Tと *const Tというrawポインタ型がある。 rawポインタはC++のポインタとよく似ている。 rawポインタはRustが全く管理してくれません。
unsafeブロックの中でしか参照解決はできない。