编辑代码

fn main() {
    println!("Hello world!     -  rust.jsrun.net");
    //安全之处:1.不允许不安全的隐式类型转换;2.虽然允许传入非法实参,但是会发出编译警告
    let mut totalCost: u8;
    total_cost = buy_loong_egg(-2);     //编译错误:类型不符
    total_cost = buy_loong_egg(8);      //允许传入非法实参,不报错
    total_cost = buy_loong_egg(3.6);    //编译错误:类型不符
    total_cost = buy_loong_egg(6);      //totalCost = 18

    //需要人为解析函数返回的结果
    match totalCost {
        Ok(value) => println!("所花费用为:{}", value),
        Err(err) => println!("{}", err),
    }
}

fn buy_loong_egg(number: u8) -> Result<u8, &'static str> {
    match number {
        2..=7 => Ok(number * 3),
            _ => Err("传入了无效的实参!"),
    }
}