Rust 语言学习笔记模块也有一些默认的约定: 1.每个 crate 中,默认实现了一个隐式的根模块(root module); 2.模块的命名风格也是 lower_snake_case,跟其它的 Rust 的标识符一样; 3.模块可以嵌套; 4.模块中可以写任何合法的 Rust 代码; 为了让外部能使用模块中 item,需要使用 pub 关键字。外部引用的时候,使用 use 关键字。 1.2.1 } } 2.4 Rust 类型系统 2.4.1 可变性 rust 在声明变量时,在变量前面加入 mut 关键字,变量就会成为可变绑定的 变量。 通过可变绑定可以直接通过标识符修改内存中的变量的值。 在绑定后仍然可以重新修改绑定类型。 例子: fn main() { let mut a: f64 = 1.0; let b = 2.0f32; 3.1.1 绑定 首先必须强调下,准确地说 Rust 中并没有变量这一概念,而应该称为标识符, 目标资源(内存,存放 value)绑定到这个标识符。 { let x: i32; // 标识符 x, 没有绑定任何资源 let y: i32 = 100; // 标识符 y,绑定资源 100 } Rust 并不会像其他语言一样可以为变量默认初始化值,Rust0 码力 | 117 页 | 2.24 MB | 1 年前3
Rust 程序设计语言简体中文版"someusername123", email: "someone@example.com", sign_in_count: 1, }; } 编译器会抱怨它需要生命周期标识符: $ cargo run Compiling structs v0.1.0 (file:///projects/structs) error[E0106]: missing lifetime route(IpAddrKind::V4); # route(IpAddrKind::V6); # } # # fn route(ip_kind: IpAddrKind) {} 注意枚举的成员位于其标识符的命名空间中,并使用两个冒号分开。这么设计的益处是现在 IpAddrKind::V4 和 IpAddrKind::V6 都是 IpAddrKind 类型的。例如,接着可以定义一个函数 来获取任何 开头。 • 相对路径(relative path)从当前模块开始,以 self 、super 或定义在当前模块中的标识 符开头。 绝对路径和相对路径都后跟一个或多个由双冒号(:: )分割的标识符。 回到示例 7-1,假设我们希望调用 add_to_waitlist 函数。还是同样的问题, add_to_waitlist 函数的路径是什么?在示例 7-3 中删除了一些模块和函数。 我们在0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0"someusername123", email: "someone@example.com", sign_in_count: 1, }; } 编译器会抱怨它需要生命周期标识符: $ cargo run Compiling structs v0.1.0 (file:///projects/structs) error[E0106]: missing lifetime 可以像这样创建 IpAddrKind 两个不同变体的实例: let four = IpAddrKind::V4; let six = IpAddrKind::V6; 注意枚举的变体位于其标识符的命名空间中,并使用两个冒号分开。这么设计的益处是现在 IpAddrKind::V4 和 IpAddrKind::V6 都是 IpAddrKind 类型的。例如,接着可以定义一个函数来 接收任何 IpAddrKind类型的参数: 名开头的绝对路径,对于当前 crate 的代码,则以字面值 crate 开头。 • 相对路径(relative path)从当前模块开始,以 self、super 或当前模块中的某个标识符开 头。 绝对路径和相对路径都后跟一个或多个由双冒号(::)分割的标识符。 回到示例 7-1,假设我们希望调用 add_to_waitlist 函数。这相当于在问:add_to_waitlist 函数的路径是什么?在示例 7-3 中删除了示例0 码力 | 562 页 | 3.23 MB | 26 天前3
Comprehensive Rust(简体中文) 202412to have a variable number of arguments (no function overloading). • 宏是“卫生的”,这意味着它们不会意外地捕获它们所在作用域中的标识符。实际上,Rust 的宏只是 部分卫生。 • Rust 是多范式编程语言。例如,它具有强大的面向对象的编程功能,虽然它不是函数式语言,但包括 一系列的函数概念。 5.2 变量 Rust provides 创建后无法再进行更改。 • 集成测试(integration test): 一种验证系统不同部分或组件之间交互的测试类型。 • 关键字(keyword): 编程语言中的保留字,具有特定含义且不能用作标识符。 • 库(library): 程序可以使用的一组预编译例程或代码。 • 宏(macro): Rust 宏可通过名称中的 ! 符号识别。当普通函数无法满足需求时,可以使用宏。一个典型示例是 format0 码力 | 359 页 | 1.33 MB | 10 月前3
共 4 条
- 1













