随笔分类 - rust
摘要:枚举 枚举允许列举所有可能的值来定义一个类型。 定义枚举 enum Color { RED, BLUE, } fn main() { let red = Color::RED; // 定义一个枚举值 test_enum(red); test_enum(Color::BLUE); } fn test_
阅读全文
摘要:rust的struct 定义和实例化struct 使用struct关键字,并对整个struct命名。 在花括号内,对所有字段(Field)定义名称和类型。 创建struct实例:为每个字段指定具体值,无需按声明顺序进行指定。 struct User { name: String, id: u64,
阅读全文
摘要:rust的切片 rust另一种不持有所有权的数据类型:切片(slice) 从一个例子开始:实现一个函数,输入一字符串,返回该字符串第一个单词,如果没空格,则返回整个字符串。 第一种实现,先返回找到的第一个空格的位置 fn main() { let s = String::from("hello wo
阅读全文
摘要:rust的引用和借用 fn main() { let s1 = String::from("hello"); let len = test_func(&s1); println!("{} {}", s1, len); } fn test_func(s: &String) -> usize { s.l
阅读全文
摘要:所有权 所有权是rust最独特、核心的特性,使得rust无GC也可保证内存安全。 其他语言都有在运行时管理自身内存的机制,比如GC,或者程序员手动申请和释放。 rust则采用了第三种方式:所有权 内存通过一所有权系统来管理,含一组编译时用于检测的规则。 当程序运行时,所有权不会影响程序速度。 sta
阅读全文
摘要:控制流表达式 if表达式 if表达式用于根据条件执行不同代码分支,条件必须是bool类型。 if表达式中,与条件关联的代码块叫分支(arm)。 可选择是否加上else表达式。 fn main() { let num = 3; if num < 6 { println!("arm num < 6");
阅读全文
摘要:rust的函数 声明函数使用fn关键字,针对函数和变量名,rust使用snake case命名规范,即所有字母小写,单词间用下划线分开。 fn main() { test_function(); } fn test_function() { println!("test func"); } rust
阅读全文
摘要:数据类型 有 标量和复合类型 rust是静态编译语言,需在编译时知道所有变量的类型。 1)通常基于变量上下文使用的值,编译器能推断出具体类型。 2)若可能的类型存在多种,则需手动标注,如下例子。 let d: u32 = "56".parse().expect("not a num"); // 因为
阅读全文
摘要:rust定义变量 let关键字 用于声明变量:let (mut) 变量名 变量值是否改变 默认变量值不可变(Immutable),在声明变量时加上mut才为可变变量。 let x = 5; x = 6; let mut y = 6; y = 8; let mut y: u32 = 9; 第二行编译报
阅读全文
摘要:在Cargo.toml中配置依赖库(在rust里叫crate),cargo会自动从配置的库网址中下载,可配如下国内源 配置rust的国内源: linux下: vim ~/.cargo/config windows:c盘/用户/用户名/.cargo/config 如果没有config文件,创建一个即可
阅读全文
摘要:rust的官网 https://www.rust-lang.org/ 1. 安装、卸载rust windows环境 下载windows安装包 双击后进入命令行安装,按照提示输入数字选项安装即可。 如果系统中缺少c++的库,会提示先安装visual studio。 linux or MAC: curl
阅读全文