Rust表达式

16 次浏览
2024年07月15日创建

分号是语句结束,未带分号则表示返回,if可以携带返回值,match就是switch,_ =>相当于default

let x = if bool {3} else {4};
println!("{}", x);

match匹配Option:

fn main() {
    let mut params = HashMap::new();
    params.insert("name", "Alice");

    match params.get("name") {
        Some(name) => println!("Hello, {}", name),
        None => print!("Greetings, stranger.")
    }
}

因为map的get就是返回Option。for循环会转移所有权,所以一定要注意:for str in &strings。

循环也可以带返回值

use std::collections::HashMap;

fn main() {
    let mut params = HashMap::new();
    params.insert("name", "aare123");

    let answer = loop {
        if let Some(name) = params.get("name") {
            if name.starts_with("aare") {
                break "good";
            }
        } else {
            break "not good";
        }
    };

    println!("answer {}", answer);
}

if let Some(name) = params.get("name"):

这部分代码检查 params.get("name") 是否返回 Some 变体。

如果返回 Some,则将内部的值绑定到 name 变量,并执行代码块中的内容。

如果返回 None,则 if let 的条件为假,跳到 else 分支。

continue会跳出本次循环。

在rust中,.运算符会根据需要自动对player解引用或者借入一个对它的引用。只有想要读取或者写入引用所指的整个????️时才需要用*运算符。

对于整数 n,不能用 !n 来表示“n 为 0”,而是应该写成 n == 0。按位取飞!

除0也不会发生panic的方法:checked_div(b)