rust学习笔记第一篇

rust导览

  • 包管理工具: cargo
  • rust管理工具: rustup

一个代码示例及其注释:

use std::str::FromStr;
use std::env;
// 函数定义规则
//类似于go rust的签名类型标记是后置的
fn gcd(mut n: u64, mut m: u64) -> u64 {
    //循环语法 类似go while里的判断条件不需要用括号包裹
    while m != 0 {
        //if 判断语法 同样不需要括号包裹
        if m < n {
            //变量定义 不需要进行类型约束 因为rust会自动推断
            let t = m;
            m = n;
            n = t;
        }
        m = m % n;
    }
    //当在程序末尾用不带分号的形式返回变量,代表程序的返回
    // rust鼓励这种形式作为程序的返回结果,以提高程序的可读性
    n 
}
fn main() {
    //声明基本容器 同样不需要类型约束 rust会自动推断 
    let mut nums = Vec::new();
    for arg in env::args().skip(1) {
        //u64 
        nums.push(u64::from_str(&arg)
            .expect("error happens"))
    }
    if nums.len() == 0 {
        println!("uage input some number and eval their gcd");
        std::process::exit(1);
    }
    let mut d = nums[0];
    for m in &nums[1..] {
        d = gcd(d,*m)
    }
    //println!输出 函数名带有!说明是宏
    println!("gcd is {}",d);
}

基本数据类型

posted @ 2023-10-27 01:01  smalllll  阅读(8)  评论(0编辑  收藏  举报