if语句的判断式必须是bool类型的,不能有隐式的转换。如果if分支里边最后是一个值,那么每一个分支都必须是一个值。 match语句类似c的switch。当找到一个匹配项,只执行改分支,不需要加一个break。一个分支匹配多个不同的值用“|”分隔。可以用“M..N”表示两个数字值范围。下划线匹配任何单个值。 每一个分支之间用逗号分隔,如果用大括号包含就可以省略逗号。
match my_number {
  0     => println!("zero"),
  1 | 2 => println!("one or two"),
  3..10 => println!("three to ten"),
  _     => println!("something else")
}
use std::f64;
use std::num::atan;
fn angle(vector: (f64, f64)) -> f64 {
    let pi = f64::consts::PI;
    match vector {
      (0.0, y) if y < 0.0 => 1.5 * pi,
      (0.0, _) => 0.5 * pi,
      (x, y) => atan(y / x)
    }
}
变量名可以匹配任意值,并且这个变量名绑定匹配到的值,可在分支里进行操作。“variable @ pattern”后边是匹配规则,前边是绑定的变量名。任何一个match分支可以有一个if语句,在匹配成功后进行判断。 循环。while的条件也必须是bool类型,break停止循环,continue进行下次循环。loop相当于while ture。for的两个例子:
for n in range(0, 5) {
    println!("{}", n);
}
let s = "Hello";
for c in s.chars() {
    println!("{}", c);
}
for可用于任何迭代器。  

上一篇:
下一篇:

相关文章:

Categories: 博客记录

0 Responses so far.

Leave a Reply