参照型 `&T` `&mut T`

Primitive Type 参照 &T or &mut T

参照, 共有と可変

参照は、ある所有された値の借用を表す。(借用とは所有権を持たないこと) & ,&mut 演算子もしくは、ref, ref mutキーワードを使って参照を得ることが出来る。

ポインタ型(*const T, *mut T)と違って、nullでないことが保証されている。

殆どの場合において、参照はオリジナルの値と同様に使うことが出来る。

  • フィールドへのアクセス
  • メソッド呼び出し
  • indexing

参照は、ライフタイムを持つ

ライフタイム - 借用が有効であることを表すスコープ

'staticライフタイムは、プログラムと同じスコープであることを表す。 例として、文字列リテラルは、'staticライフタイムを持つ。

実装しているトレイト

  • Copy
  • Clone TがCloneを実装しているしていないに関わらず
  • Deref
  • Borrow
  • Pointer

Tが実装している場合

  • PartialOrd
  • Ord
  • PartialEq
  • Eq
  • AsRef
  • Fn
  • Hash

参照

doc.rust-lang.org