走进 Rust:Drop trait
实现 Drop
实现Drop trait用于手动清理某个值,例如锁。
struct CustomSmartPointer {
data: String,
2020-08-25,阅读:362,评论:0,点赞:0,标签:Rust
走进 Rust:迭代器
遍历求和
iter()获取迭代器,sum()求和。
#[test]
fn iterator_sum() {
let v1 = vec![1, 2, 3]
2020-08-06,阅读:515,评论:0,点赞:0,标签:Rust
走进 Rust:闭包
定义
|num|中的num是传入参数,多个参数可以是|param1, param2|。大括号}前一行num是闭包的返回值。let expensive_closu
2020-07-24,阅读:734,评论:0,点赞:0,标签:Rust
走进 Rust:引用的生命周期
定义
借用检查器borrow checker会比较作用域来确保所有的引用都是有效的。
x的引用的生命周期是'b,即r = &x;后引用就被回收了,而r指
2020-07-23,阅读:551,评论:0,点赞:0,标签:Rust
走进 Rust:trait
注意
trait类似Java中的接口interface。
定义trait
pub trait Summary {
fn summarize(&s
2020-07-22,阅读:563,评论:0,点赞:0,标签:Rust
走进 Rust:泛型
函数中使用泛型
fn test<T>(t: T) -> T{
t
}
结构体中使用泛型
单个参数
struct Point<T&
2020-07-20,阅读:597,评论:0,点赞:0,标签:Rust
走进 Rust:异常处理
抛出异常
使用panic!宏抛出异常。
fn main() {
panic!("crash and burn");
}
处理异常
使用Result枚举处
2020-07-17,阅读:423,评论:0,点赞:0,标签:Rust
走进 Rust:HashMap 集合
新建
通过宏新建一个HashMap对象。
let teams = vec![String::from("Blue"), String::from("Yello
2020-07-16,阅读:903,评论:0,点赞:0,标签:Rust
走进 Rust:Vector 集合
Vector
let v: Vec<i32> = Vec::new();
let v = vec![1, 2, 3, 4, 5];
添加元素
let
2020-07-15,阅读:496,评论:0,点赞:0,标签:Rust
走进 Rust:Crate、模板
Crate
src/main.rs
构建成二进制
src/lib.rs
构建成依赖包
Module
Rust中的items(函数、方法、结构体、枚举、模块和常量
2020-07-14,阅读:669,评论:0,点赞:0,标签:Rust
走进 Rust:枚举
定义枚举
#[derive(Debug)]
enum IpAddrKind {
V4,
V6,
}
使用枚举
枚举同样可以使用impl来实现结构
2020-07-13,阅读:660,评论:0,点赞:0,标签:Rust
走进 Rust:结构体方法
方法语法
方法与函数相似:它们使用fn关键字及其名称进行声明,可以具有参数和返回值,并且包含一些在其他地方调用时运行的代码。但是,方法与函数的不同之处在于,它们
2020-07-10,阅读:491,评论:0,点赞:0,标签:Rust
走进 Rust:打印结构体字段
定义结构体
struct Rectangle {
width: u32,
height: u32,
}
打印结构体
使用{}打印会报错。
fn
2020-07-09,阅读:1680,评论:0,点赞:1,标签:Rust
走进 Rust:结构体
定义和实例化结构体
结构体和元组类似。像元组一样,结构体的各个部分可以是不同的类型。与元组不同,你将为每个数据命名,以便清楚地知道这些值的含义。由于使用了这些名
2020-07-08,阅读:622,评论:0,点赞:0,标签:Rust
走进 Rust:切片
切片
另一种没有所有权的数据类型是切片。切片使你可以引用集合中连续的元素序列,而不是整个集合。
这是一个小的编程问题:编写一个函数,该函数需要一个字符串并返回在
2020-07-07,阅读:1007,评论:0,点赞:1,标签:Rust
走进 Rust:参考和借阅
参考和借阅
上一节元组代码的问题在于,我们必须将String返回给调用函数,因此,在调用calculate_length之后,我们仍然可以使用String,因为
2020-07-07,阅读:595,评论:0,点赞:0,标签:Rust
走进 Rust:所有权
所有权
Rust的主要功能是所有权。尽管该功能易于解释,但对其余语言有深远的影响。
所有程序必须在运行时管理它们使用的计算机内存。某些语言具有垃圾回收功能,该垃
2020-07-06,阅读:498,评论:0,点赞:0,标签:Rust
走进 Rust:流程控制
if
if的条件必须是bool类型。
fn main() {
let number = 3;
if number < 5 {
2020-07-03,阅读:536,评论:0,点赞:0,标签:Rust
走进 Rust:函数
命名规范
使用蛇形命名法snake case(所有单词小写,使用_下划线分隔)命名函数名称。
fn main() {
another_function(
2020-07-02,阅读:540,评论:0,点赞:0,标签:Rust
走进Rust:数据类型
Scalar Types
标量类型。Rust有4个主要的标量类型:integers(整数类型)、floating-point numbers(浮点数类型)、Bo
2020-06-30,阅读:485,评论:0,点赞:0,标签:Rust