01 Rust核心语法
文章
01 数据类型和变量
如何速通各种语言 一个语言应该包括以下几个部分 核心语法:数据类型和变量、控制流程、数据结构、函数、面向对象、其他 内置工具库:数学、日期、字符串、系统、序列化等 内置高阶库:文件IO、网络编程、并发编程 生态库:Web框架、客户端、分布式 编译原理:虚拟机 安装 安装rustup,用来管理rust版本的工具。 1$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh 安装更新rust 1rustup update 查看安装的版本 1rustc --version 优势分析 所有权\move语法\借用引用 表达式与语句概念 变量变量和常量 默认情况下是不可变的。这也是rust的设计哲学之一:通过默认的方式避免掉了很多种可能会出现的错误,非常好的设计思路,将最稳定、最安全的方式作为...
02 控制流程
if表达式基本语句if 表达式允许根据条件执行不同的代码分支。你提供一个条件并表示 “如果条件满足,运行这段代码;如果条件不满足,不运行这段代码。” 123456789fn main() { let number = 3; if number < 5 { println!("condition was true"); } else { println!("condition was false"); }} elseif多重条件可以将 if 和 else 组成的 else if 表达式来实现多重条件。例如: 12345678910111213fn main() { let number = 6; if number % 4 == 0 { println!("number is divisible by 4"); } else if number...
03 数据结构
结构体结构体定义结构体和我们在“元组类型”章节论过的元组类似。和元组一样,结构体的每一部分可以是不同类型。但不同于元组,结构体需要命名各部分数据以便能清楚的表明其值的意义。由于有了这些名字,结构体比元组更灵活:不需要依赖顺序来指定或访问实例中的值。 定义结构体,需要使用 struct 关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。接着,在大括号中,定义每一部分数据的名字和类型,我们称为 字段(field)。例如,示例 5-1 展示了一个存储用户账号信息的结构体: 12345678struct User { active: bool, username: String, email: String, sign_in_count: u64,}fn main() {} 结构体使用通过为每个字段指定具体值的方式来创建该结构体的实例。创建一个实例需要以结构体的名字开头,接着在大括号中使用 key: value 键-值对的形式提供字段,其中 key 是字段的名字,value 是需要存储在字段中的数...
04 函数
函数定义函数定义Rust 代码中的函数和变量名使用下划线命名法(snake case,直译为蛇形命名法)规范风格。在下划线命名法中,所有字母都是小写并使用下划线分隔单词。这是一个包含函数定义示例的程序: 123456789fn main() { println!("Hello, world!"); another_function();}fn another_function() { println!("Another function.");} 函数参数函数也可以被定义为拥有参数(parameter),参数是特殊变量,是函数签名的一部分。当函数拥有参数(形参)时,可以为这些参数提供具体的值(实参)。技术上讲,这些具体值被称为实参(argument),但是在日常交流中,人们倾向于不区分使用 parameter 和 argument 来表示函数定义中的变量或调用函数时传入的具体值。 1234567fn main() { another_function(5);...
11 所有权和move语法
所有权基本规则 Rust 中的每一个值都有一个被称为其 所有者(owner)的变量。 值在任一时刻有且只有一个所有者。 当所有者(变量)离开作用域,这个值将被丢弃。 变量作用域变量 s 绑定到了一个字符串字面量,这个字符串值是硬编码进程序代码中的。该变量从声明的那一刻开始直到当前 作用域 结束时都是有效的。 当 s 进入作用域 时,它就是有效的。 这一直持续到它 离开作用域 为止。 12345{ // s 在这里无效, 它尚未声明 let s = "hello"; // 从此处起,s 开始有效 // 使用 s} // 此作用域已结束,s 不再有效 内存分配这是一个将 String 需要的内存返回给分配器的很自然的位置:当 s 离开作用域的时候。当变量离开作用域,Rust 为我们调用一个特殊的函数。这个函数叫做 drop,在这里 String 的作者可以放置释放内存的代码。Rust 在结尾的 } 处自动调用 drop。 123456...











