9. 函数、方法和闭包:function/method/closure
函数用于执行一个任务或计算一个值。 函数使用 fn 声明, 使用 -> 来指定返回值类型,没有指定返回值时默认为 unit type 类型和值 ()。 函数签名的每个参数都要标注类型,但 lifetime 可以使用 '_ 来让编译器自动推导(如根据 lifetime elision rule),如:
软操作也要配硬曲
小钰大猪崽
函数用于执行一个任务或计算一个值。 函数使用 fn 声明, 使用 -> 来指定返回值类型,没有指定返回值时默认为 unit type 类型和值 ()。 函数签名的每个参数都要标注类型,但 lifetime 可以使用 '_ 来让编译器自动推导(如根据 lifetime elision rule),如:
小钰大猪崽
模式匹配 match expression {} 是一个表达式,可用于变量赋值: expression 的结果可以是复杂类型, 如 struct、enum、tuple 等; 各 branch 是逗号分割的 pattern => {statements;},; 如果是单条语句,则可以省略大括号,如 p
小钰大猪崽
Rust 是表达式语言,let、let-else、if-else,if-let,while-let,match,loop,block 等都是表达式,可以有返回值,可用于变量赋值。 // 语句没有返回值,所以下面代码编译时报错: let x = (let y = 5); Rust 控制流结构包括:i
小钰大猪崽
Rust 所有对象都具有 lifetime。 lifetime 是类型的注解参数, 不能在表达式中使用。只在编译时检查,运行时不感知: // 不支持在表达式中使用 lifetime 注解 // error: borrow expressions cannot be annotated with li
小钰大猪崽
OBRM OBRM(Owner Base Resource Manage) 规则: 每一个 Rust 对象都有一个称为 Owner 的变量; 某个时刻,每个 Rust 对象只能有一个所有者(Owner); 当对象不再使用时,Rust 会调用它的 Drop trait 实现来释放资源; 通过 OBRM
小钰大猪崽
panic panic 是 Rust 提供的异常处理机制,打印 error message,然后开始回溯线程调用栈(unwinding stack),drop 所有对象: 如果是主线程 panic,则整个程序退出; 如果是子线程 panic,则终止该子线程,程序不退出; 默认只打印 error me
小钰大猪崽
类型 基础类型:Boolean, Numeric, Textual, Never; 序列类型:Tuple, Array, Slice; 自定义类型:Struct, Enum, Union; 函数类型:Functions, Closures; 指针类型:References, Raw pointers
小钰大猪崽
使用 let 声明变量, 默认不可变 (immutable),使用 mut 声明可变变量: let _immutable_binding = 1; let mut mutable_binding = 1; println!("Before mutation: {}", mutable_bindin
小钰大猪崽
标识符 不能以数字开头,不能使用关键字和保留字。 以 r# 开头的 raw indentify 可以使用关键字作为标识符。 foo _identifier r#true Москва 東京
小钰大猪崽
本文假设读者具有一定的服务器操作知识, 会基本的Docker和命令行操作, 文中仅给出最核心的操作 https以及域名访问部分需要有公网IP和自购域名, 如果只是内网访问, 可以不配置https/域名/cloudflare相关内容 有不清楚的地方可以AI搜索, 或者评论区讨论 rustfs部署 do