無名の生存期間('_)
from 項目14:生存期間を理解しよう
生存期間パラメータ を持つ 構造体 と 生存期間省略ルール が組み合わさると、戻りの型が生存期間パラメータを持つことがコードから分からなくなる
e.g.
pub fn find_one_item<'a>(items: &'a [Item]) -> ReferenceHolder<'a> {
これは以下のように省略できる
pub fn find_one_item(Items: &[Item]) -> ReferenceHolder {
'_ を用いると、生存期間パラメータを持つことを明示 できる
pub fn find_one_item(Items: &[Item]) -> ReferenceHolder<'_> {
'_ を用いると、 コンパイラ はユニークな生存期間名を考えてくれる
そのため、同じ生存期間名を他で使う必要がない場合 にも有用
e.g. Debug トレイトの fmt メソッド
code:rs
pub trait Debug {
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>;
}
Formatter インスタンスは &self とは異なる 生存期間 を持つが、生存期間名は他で必要ない
#Rust #Effective_Rust_―_Rustコードを改善し、エコシステムを最大限に活用するための35項目