chars()
で文字列を分割したイテレータが返ってくるようなのでenumerate()
でインデックス情報を追加します。
fn main() {
let str = "abc";
for (i, c) in str.chars().enumerate() {
println!("{:?} : {:?}", i, c)
}
}
出力
0 : 'a'
1 : 'b'
2 : 'c'
インデックスを1から始まりにする
zip()
の2つのイテレータをまとめる性質を利用して0以外の値からスタートさせることもできます。
fn main() {
let str = "abc";
for (i, c) in (1..).zip(str.chars()) {
println!("{:?} : {:?}", i, c)
}
}
出力
1 : 'a'
2 : 'b'
3 : 'c'