- 变量
let a=123;
变量声明后不能改变值,但是可以再次定义let a=456;
let mut a=123;a=456;
可变变量let a: u64 = 123;
64位无符号变量 - 数据类型
- 整形
位长度 有符号 无符号 8-bit i8 u8 16-bit i16 u16 32-bit i32 u32 64-bit i64 u64 128-bit i128 u128 arch 可变类型取决于平台 isize usize - 浮点型 f32 f64
- 字符型char 占用4个字节
- 布尔型 bool 只有true flase
- 复合型,元组
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();写入文件
文档更新时间: 2020-07-25 16:26 作者:Yoby