• 变量
    let a=123;变量声明后不能改变值,但是可以再次定义let a=456;
    let mut a=123;a=456;可变变量
    let a: u64 = 123;64位无符号变量
  • 数据类型
  1. 整形
    位长度 有符号 无符号
    8-bit i8 u8
    16-bit i16 u16
    32-bit i32 u32
    64-bit i64 u64
    128-bit i128 u128
    arch 可变类型取决于平台 isize usize
  2. 浮点型 f32 f64
  3. 字符型char 占用4个字节
  4. 布尔型 bool 只有true flase
  5. 复合型,元组let tup: (i32, f64, u8) = (500, 6.4, 1);
    数组let a = [1, 2, 3, 4, 5];
    6.字符串let hello = String::from("你好");连接使用+
  • 注释
    // 和 /* 内容注释*/
    /// 注释
  • 表达式
    let y = {
          let x = 3;
          x + 1
      };
  • 函数,->是返回类型
    fn add(a: i32, b: i32) -> i32 {
      return a + b;
    }
  • 条件语句,支持多个else if
    if a > 0 { 1 } else { -1 };
  • 循环只有while for loop三种
let mut i = 0;
while i < 10 {
    i += 1;
}

let a = [10, 20, 30, 40, 50];
    for i in a.iter() {
        println!("值为 : {}", i);
    }
 let s = ['R', 'U', 'N', 'O', 'O', 'B'];
    let mut i = 0;
    loop {
        let ch = s[i];
        if ch == 'O' {
            break;
        }
        println!("\'{}\'", ch);
        i += 1;
    }
  • 引用与租借
    引用符号& 可变引用 &mut
  • 切片类型
    字符串切片,数组也支持切片
    let s = String::from("broadcast");
    let part1 = &s[0..5];
  • 结构体类型,只能定义,不能实例声明,末尾无;
    struct Site {
      domain: String,
      name: String,
      nation: String,
      found: u32
    }
  • 枚举类型
    enum Book {
      Papery(u32),
      Electronic(String),
    }
    enum Book {
      Papery { index: u32 },
      Electronic { url: String },
    }
  • 访问权限公有pub私有不加修饰默认就是
  • IO操作
    let args = std::env::args();获取参数
    use std::io::stdin;命令行输入
    let mut str_buf = String::new();
    stdin().read_line(&mut str_buf).expect("Failed to read line.");读取
    use std::fs;
    let text = fs::read_to_string("D:\\text.txt").unwrap();字符串读取文件
    let content = fs::read("D:\\text.txt").unwrap(); 二进制读取文件
    fs::write(“D:\text.txt”, “FROM RUST PROGRAM”) .unwrap();写入文件
作者:Yoby  创建时间:2020-07-25 14:49
 更新时间:2024-12-05 13:26
上一篇:
下一篇: