8. 模式匹配:match pattern
模式匹配 match expression {} 是一个表达式,可用于变量赋值: expression 的结果可以是复杂类型, 如 struct、enum、tuple 等; 各 branch 是逗号分割的 pattern => {statements;},; 如果是单条语句,则可以省略大括号,如 p
7. 流程控制:flow control
Rust 是表达式语言,let、let-else、if-else,if-let,while-let,match,loop,block 等都是表达式,可以有返回值,可用于变量赋值。 // 语句没有返回值,所以下面代码编译时报错: let x = (let y = 5); Rust 控制流结构包括:i
6. 生命周期:lifetime
Rust 所有对象都具有 lifetime。 lifetime 是类型的注解参数, 不能在表达式中使用。只在编译时检查,运行时不感知: // 不支持在表达式中使用 lifetime 注解 // error: borrow expressions cannot be annotated with li
5. 借用:refer/borrow
OBRM OBRM(Owner Base Resource Manage) 规则: 每一个 Rust 对象都有一个称为 Owner 的变量; 某个时刻,每个 Rust 对象只能有一个所有者(Owner); 当对象不再使用时,Rust 会调用它的 Drop trait 实现来释放资源; 通过 OBRM
4. 错误处理:panic/error/Option/Result
panic panic 是 Rust 提供的异常处理机制,打印 error message,然后开始回溯线程调用栈(unwinding stack),drop 所有对象: 如果是主线程 panic,则整个程序退出; 如果是子线程 panic,则终止该子线程,程序不退出; 默认只打印 error me
3. 类型:type
类型 基础类型:Boolean, Numeric, Textual, Never; 序列类型:Tuple, Array, Slice; 自定义类型:Struct, Enum, Union; 函数类型:Functions, Closures; 指针类型:References, Raw pointers
2. 变量和常量:variable/const/static
使用 let 声明变量, 默认不可变 (immutable),使用 mut 声明可变变量: let _immutable_binding = 1; let mut mutable_binding = 1; println!("Before mutation: {}", mutable_bindin
1. 标识符和注释:identify/comment
标识符 不能以数字开头,不能使用关键字和保留字。 以 r# 开头的 raw indentify 可以使用关键字作为标识符。 foo _identifier r#true Москва 東京
Java快速入门 - JDK安装与环境配置
为什么Java应用最广泛? 从互联网到企业平台,Java是应用最广泛的编程语言,原因在于: Java是基于JVM虚拟机的跨平台语言,一次编写,到处运行; Java程序易于编写,而且有内置垃圾收集,不必考虑内存管理; Java虚拟机拥有工业级的稳定性和高度优化的性能,且经过了长时期的考验; Java拥
HTTP/2 和 CONTINUATION Flood
HTTP/2 概述 先回顾一下 HTTP/2 协议。它和 HTTP/1.1 最大的不同在于: HTTP/1.1 是一个文本协议,协议的基础单元是 message ,message 之间会用 CRLF (\r\n) 做分隔,例如:POST /foo?name=menu&value= HTTP/1.1\