rust for循环

for and Range

迭代0到100,可以使用for n in 0. .100 n就是每次迭代的值。

fn main() {
    for n in 0..100 {
        if n % 15 == 0 {
            println!("15的倍数")
        } else if n % 3 == 0 {
            println!("3的倍数")
        } else if n % 5 == 0 {
            println!("buzz");
        } else {
            println!("{}", n);
        }
    }
}

当然上述的for n in 0.100 可以写成for n in 0. .=100这样的格式。

fn main() {
    for n in 0..=100 {
        if n % 15 == 0 {
            println!("15的倍数")
        } else if n % 3 == 0 {
            println!("3的倍数")
        } else if n % 5 == 0 {
            println!("buzz");
        } else {
            println!("{}", n);
        }
    }
}

for and iterators

iter()

集合元素不可被修改

fn main() {
    let names=vec!["Bob", "Frank", "Ferris"];
    for name in names.iter() {
        ///这里的name是字符串原始值的引用
        match name {
            &"Frank"=>println!("There is a rustacean among us!"),
            _=>println!("Hello {}", name)
        }
    }
    println!("names: {:?}", names);
}

into_iter()

使用into_iter()之后,集合本身生命周期结束

fn main() {
    let names=vec!["Bob", "Frank", "Ferris"];
    for name in names.into_iter() {
        ///这里into_iter会消耗集合数据,迭代完毕生命周期结束
        match name {
            "Frank"=>println!("There is a rustacean among us!"),
            _=>println!("Hello {}", name)
        }
    }
}

iter_mut

使用iter_mut修改集合数据

fn main() {
    let mut names = vec!["Bob", "Frank", "Ferris"];
    ///引用可以使用*操作符来进行解引用从而获取其在内存中指向的值
    for name in names.iter_mut() {
        *name =match name {
            &mut "Ferris" => "There is a rustacean among us!",
            _ => "Hello",
        }
    }
    println!("names: {:?}", names);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值