随笔分类 -  Rust入门

摘要:if let 简单控制流 if let处理只匹配一个模式的值而忽略其他模式的情况 (可以看作match的语法糖) let v = Some(0u8); match v { Some(3) => println!("three"), _ => () } 用 if let 可以写为 if let Som 阅读全文
posted @ 2022-05-04 20:46 ragworm 阅读(46) 评论(0) 推荐(0)
摘要:match 控制流运算符 match 允许我们将一个值与一系列的模式相比较,并根据相匹配的模式执行相应代码 模式可以是字面量、变量、通配符等等 enum Coin { //美国硬币的类型 Penny, //1美分 Nickel, //5美分 Dime, //10美分 Quarter, //25美分 阅读全文
posted @ 2022-05-04 20:44 ragworm 阅读(64) 评论(0) 推荐(0)
摘要:枚举 通过列举可能的 成员(variants) 来定义一个类型 定义枚举 eg:IP 地址,目前被广泛使用的两个主要 IP 标准:IPv4(version four)和 IPv6(version six)。 一个 IP 地址要么是 IPv4 的要么是 IPv6 的,而且只能是其中一个。 枚举值只能是 阅读全文
posted @ 2022-05-04 20:43 ragworm 阅读(57) 评论(0) 推荐(0)
摘要:方法语法 方法:完成特定功能的代码块(和函数是不同的结构,方法在结构体中定义) 方法与函数类似,使用 fn 关键字和名称声明,可以拥有参数和返回值,同时包含在某处调用该方法时会执行的代码 与函数不同之处 它们在结构体(或者枚举或 trait 对象)的上下文中被定义 第一个参数是 self,表示方法被 阅读全文
posted @ 2022-04-29 20:15 ragworm 阅读(127) 评论(0) 推荐(0)
摘要:结构体例子 计算长方形面积 fn main() { let width1 = 30; let height1 = 50; println!( "The area of the rectangle is {} square pixels.", area(width1, height1) ); } fn 阅读全文
posted @ 2022-04-29 20:14 ragworm 阅读(52) 评论(0) 推荐(0)
摘要:定义并实例化结构体(struct) 定义结构体 使用struct关键字给整个结构体命名 在大括号中定义每一部分的名字和类型,即字段(field) struct User { active: bool, username: String, email: String, sign_in_count: u 阅读全文
posted @ 2022-04-29 20:13 ragworm 阅读(539) 评论(0) 推荐(0)
摘要:切片(slice) slice是一个没有所有权的数据类型 slice 允许引用集合中一段连续的元素序列,而不用引用整个集合 //该函数接收一个字符串,返回在字符串中找到第一个单词 //如果在字符串中没有找到空格,就返回整个字符串 fn first_word(s: &String) -> usize 阅读全文
posted @ 2022-04-29 20:12 ragworm 阅读(41) 评论(0) 推荐(0)
摘要:引用与借用 引用是一种数据类型 & 符号就是引用 允许使用值但不获取其所有权 解引用(dereferencing) 解引用运算符 * fn main() { let s1 = String::from("hello"); let len = calculate_length(&s1); // &s1 阅读全文
posted @ 2022-04-29 20:11 ragworm 阅读(146) 评论(0) 推荐(0)
摘要:所有权(ownership) 栈内存(Stack)与堆内存(Heap) 栈 按值的接收顺序来存储,按相反的谁徐将他们移除(后进先出)(last in, first out) 添加数据叫(压)入栈(pushing onto the stack) 移出数据叫(弹)出栈(popping off the s 阅读全文
posted @ 2022-04-29 20:10 ragworm 阅读(70) 评论(0) 推荐(0)
摘要:控制流 if表达式 关键字if后跟条件 条件不加括号 if number < 5 { println!("condition was true"); } else { println!("condition was false"); } 条件必须是bool值(即结果必须为1或0,不可为其他整数等) 阅读全文
posted @ 2022-04-29 20:09 ragworm 阅读(63) 评论(0) 推荐(0)
摘要:函数 fn关键字声明函数 函数和变量名使用下划线命名法(snake case) 所有字母小写 下划线分隔单词 fn another_function() { println!("Another function."); } 函数可以在main 函数之后,也可以定义在main之前(与其他语言不同) 参 阅读全文
posted @ 2022-04-24 18:34 ragworm 阅读(59) 评论(0) 推荐(0)
摘要:数据类型(data type) Rust 是一种静态类型(statically typed)的语言,所以必须标明所有变量的类型。 标量(scalar)类型 标量表示单个值,有4个基本的标量类型 整形 浮点型 布尔型 字符 1. 整数(integer)类型 整数:没有小数部分的数字 i ( integ 阅读全文
posted @ 2022-04-24 18:33 ragworm 阅读(146) 评论(0) 推荐(0)
摘要:变量(variable)与可变性 变量使用关键字let声明 默认情况下变量时不可变的 fn main() { let x = 5; println!("The value of x is: {}", x); x = 6; println!("The value of x is: {}", x); } 阅读全文
posted @ 2022-04-24 18:32 ragworm 阅读(98) 评论(0) 推荐(0)