Rust 1.96でRange型がついにCopy対応 — 長年の課題を解決、スライス操作が格段に便利に
DRANK

5月28日、Rust公式ブログが「Announcing Rust 1.96.0」と題した記事を公開した。この記事では、新しいRange型の導入やassert_matchesマクロの追加など、Rust 1.96.0の主要な新機能について詳しく紹介されている。以下に、その内容を紹介する。Copy可能な新Range型で長年の開発者の悩みを解消Rust 1.96.0の最も注目すべき変更は、Copy可能な新Range型の導入だ。これは2020年頃から議論が続いていたRustコミュニティの長年の課題で、多くの開発者が「なぜ0..10をコピーできないのか」という疑問を抱いていた問題の解決策である。従来のcore::opsのRange型は、Iteratorを直接実装していたためCopyトレイトを実装できなかった。同一型でIteratorとCopyを両方実装するのはフットガン(危険な罠)となるためだ。イテレータは状態を持つため、コピーすると予期しない動作を引き起こす可能性があった。RFC 3550で提案された新しいRange型は、IteratorではなくIntoIteratorを実装することで、この制約...

by @tf_official
Related Topics: Rust