mastodon.cardina1.red は、数々の独立したMastodonサーバーのうちのひとつです。サーバーに登録してFediverseのコミュニティに加わってみませんか。

サーバーの情報

3
人のアクティブユーザー

Rust の Vec<T> 、ヒープにあるというのと可変長というのが特徴で、逆にそれらの特徴を必要としない操作 (探索、並べ替え、要素アクセスなどなど) は全部 Deref 経由で &[T] の操作を使うことになっているので、それを知っていると覚えることが減って楽になれる

&Vec<T> からイテレータを作ると &[T] から作るイテレータ (std::slice::Iter<'_, T>) が返されるとか

まあそれを言ったら std::slice::Iter を返す &Vec<T> のイテレータも IntoIterator for &Vec<T> で実装されてるので、 trait というのはそういうものなんだけど……

ここで「アクセス」で想定していたのは vec.get(i) とかですね (Vec::<T>::get は存在しなくて deref 経由で <&[T]>::get が利用される)

Coercions - The Rustonomicon
doc.rust-lang.org/nomicon/coer

trait を Deref 任せにしないのは、 deref coercion が trait bound で型をマッチする場合に利用されないからという理由がある (はず)

doc.rust-lang.orgCoercions - The RustonomiconThe Dark Arts of Advanced and Unsafe Rust Programming