てがみ: qatacri at protonmail.com | 統計 | 2026

202600100

たとえば opt: Optional<T> から e: &T を取り出したいとき、現行の Rust だと

if let Some(e) = opt.as_ref() { ...
if let Some(ref e) = opt { ...
if let Some(e) = &opt { ...

こんな感じでいろいろに書ける。どれが推奨されるんだろう。三番目は初期の Rust にはなかったのだが、挙動をよく理解しないまま現在に至る。

Patterns - The Rust Reference

Binding mode という概念があるのだな。

as_ref() は型がネストしているときに辛い。 = &opt は mutability の粒度が粗くなる。Some(ref e) がいいかなあ。