やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Rust自習(rev()実装できず)

 iter()の逆順になるrev()を実装したかった。

成果物

問題: rev()が使えない

 以下のようにしてもエラーになった。

list.iter().rev()
error[E0277]: the trait bound `Iter<'_, i32>: std::iter::DoubleEndedIterator` is not satisfied
   --> src/lib.rs:726:39
    |
726 |         for (i, value) in list.iter().rev().enumerate() { assert_eq!(*value, expecteds[i]) }
    |                                       ^^^ the trait `std::iter::DoubleEndedIterator` is not implemented for `Iter<'_, i32>`

std::iter::Rev構造体

 これを実装するコード例はググっても見つけられなかった。

所感

 Vecを使ったほうが早そう。

let v = vec![1,2,3];
v.iter().rev()

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l GNU/Linux

前回まで