てがみ: qatacri at protonmail.com | 統計 | ⟨ 2025 | 2026 | 2027 ⟩
起床直後に出る無限くしゃみが外に出る気力を奪う。
たとえば 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 にはなかったのだが、挙動をよく理解しないまま現在に至る。
Binding mode という概念があるのだな。
as_ref() は型がネストしているときに辛い。 = &opt は mutability の粒度が粗くなる。Some(ref e) がいいかなあ。
202536300 foo[i] も *foo.index(i) と、微妙に脱糖規則がばらばらだ。もちろん理由があるのだろうけれど。