2.3 所有权和借用 1 所有权和借用 Rust 之所以能成为万众瞩目的语言,就是因为其内存安全性。在以往,内存安全几乎都是通过 GC 的方式实现,但是 GC 会引来性能、内存占用以及 Stop the world 等问题,在高性能场景和系统编程上是不可接受的,因此 Rust 采用了与众不同的方式:所有权系统。 理解 所有权 和 借用,对于 Rust 学习是至关重要的。 2025-01-05 rust > rust圣经 > rust基础 #rust
2.2.4 函数 1 函数 123fn add(i: i32, j: i32) -> i32 { i + j } 该函数如此简单,但是又是如此的五脏俱全,声明函数的关键字 fn,函数名 add(),参数 i 和 j,参数类型和返回值类型都是 i32,总之一切那么的普通,但是又那么的自信,直到你看到了下面这张图: img 1.1 函数要点 函数名和变量名使 2025-01-05 rust > rust圣经 > rust基础 #rust
2.2.3 语句与表达式 1 语句和表达式 Rust 的函数体是由一系列语句组成,最后由一个表达式来返回值,例如: 12345678#![allow(unused)]fn main() {fn add_with_extra(x: i32, y: i32) -> i32 { let x = x + 1; // 语句 let y = y + 5; // 语句 x + y // 表 2025-01-05 rust > rust圣经 > rust基础 #rust
2.2.2 字符、布尔、单元类型 1 字符、布尔、单元类型 1.1 字符类型(char) 下面的代码展示了几个颇具异域风情的字符: 123456fn main() { let c = 'z'; let z = 'ℤ'; let g = '国'; let heart_eyed_cat = '😻';} 2025-01-05 rust > rust圣经 > rust基础 #rust
2.2.1 数值类型 1 数值类型 Rust 使用一个相对传统的语法来创建整数( 1, 2,...)和浮点数( 1.0, 1.1,...)。 不仅仅是数值类型,Rust 也允许在复杂类型上定义运算符,例如在自定义类型上定义 + 运算符,这种行为被称为运算符重载,Rust 具体支持的可重载运算符见 附录 B。 1.1 整数类型 整数 是没有小数部分的数字。下表显示了 Rust 中的内置的整数类 2025-01-05 rust > rust圣经 > rust基础 #rust
2.2 基本类型 1 基本类型 Rust 每个值都有其确切的数据类型,总的来说可以分为两类:基本类型和复合类型。 基本类型意味着它们往往是一个最小化原子类型,无法解构为其它类型(一般意义上来说),由以下组成: 数值类型:有符号整数 ( i8, i16, i32, i64, isize)、 无符号整数 ( u8, u16, u32, u64, usize) 、浮点数 ( f32, f64)、以及有 2025-01-05 rust > rust圣经 > rust基础 #rust
2.1 变量绑定与解构 1 变量绑定与解构 1.1 为何要手动设置变量的可变性? Rust 支持声明可变的变量,也支持声明不可变的变量(例如函数式语言),既要灵活性又要安全性。 运行性能上的提升,因为将本身无需改变的变量声明为不可变在运行期会避免一些多余的 runtime 检查。 1.2 变量命名 在命名方面,和其它语言没有区别,不过当给变量命名时,需要遵循 Rust 命名规范。 Rust 语言有 2025-01-05 rust > rust圣经 > rust基础 #rust
16. 关于TCP并发连接的几个思考题与试验 附录 D 关于 TCP 并发连接的几个思考题与试验 第一道初级题目 有一台机器,它有一个 IP,上面运行了一个 TCP 服务程序,程序只侦听一个端口,问:从理论上讲(只考虑 TCP/IP 这一层,不考虑 IPv6)这个服务程序可以支持多少并发 TCP 连接?(答 65536 上下的直接出局。) 具体来说,这个问题等价于:有一个 TCP 服务程序的地址是 1.2.3.4:8765,问它 2025-01-05 c++ > muduo多线程服务器 #muduo
15. 关于Boost的看法 附录 C 关于 Boost 的看法 这是我为电子工业出版社出版的《Boost 程序库完全开发指南》写的推荐序,此处节选了我对在 C++ 工程项目中使用 Boost 的看法。 最近一年我电话面试了数十位 C++ 应聘者。惯用的暖场问题是“工作中使用过 STL 的哪些组件?使用过 Boost 的哪些组件?”。得到的答案大多集中在 vector、map、shared_ptr。如果对方是在校学 2025-01-05 c++ > muduo多线程服务器 #muduo
14. 从《C++Primer(第4版)》入手学习C++ 附录 B 从《C++ Primer(第4版)》入手学习 C++ B.1 为什么要学习 C++ 2009 年本书作者 Stanley Lippman 先生应邀来华参加上海祝成科技举办的 C++ 技术大会,他表示人们现在还用 C++ 的唯一理由是其性能。相比之下,Java、C#、Python 等语言更加易学易用并且开发工具丰富,它们的开发效率都高于 C++。但 C++ 目前仍然是运行最快 2025-01-05 c++ > muduo多线程服务器 #muduo