Rust 基本概念
今日英语:If you are hopeful,you will be invincible.
下面是 Rust 语言的架构图,之前在知乎上看到的,为了加深体系的理解,自己动手“临摹”了一遍。
- 第一层编程范式:OOP 和 FP,比较熟悉;OOP,面向对象(封装、继承、多态) ,典型如 Java;FP 典型如 Scala;其实很多语言里面都有 FP 的影子
- 第二层语义:相对都会非常陌生,借用/所有权/生命周期
- 第三层类型:一切都是类型是理解的重点
- 第四层内存管理:安全、安全、安全
以上,还是有很多之前语言经验中没有的知识,需要端正态度,带上信心,坚持就是胜利。
// 熟悉一些基础的语法 fn some_syntax() { // 使用 let 声明变量,绑定值,x 为不可变; // 默认编译器为进行"类型推断",所以 x 类型为 i32 // 语句末尾分号; let x0 = 3; let x1: i32 = 3; // 显示指定类型 let x2 = 3i32; // 显示指定类型 let x3 = 3_i32;// 显示指定类型 // x0 = 5; // 这一行会报错,因为 x 声明是不可变:Cannot assign twice to immutable variable [E0384] // 和 Java 一样,函数的返回值可以作为函数的参数 let x4 = add(add(x0, x1), add(x2, x3)); // m1 是可变的, mutable let mut m1 = 3; // println! 是宏调用,这个不理解,需要后面关注 // {} 用于占位,区别于其它语言 %d %s println!("可变 m1={}", m1); m1 = 4; println!("可变 m1={}", m1); } // 定义一个函数:参数,返回值 // fn <函数名>([参数名: 参数类型,...])[ -> 返回值类型] {} fn add(a: i32, b: i32) -> i32 { // return 可以省略,这里会返回 a+b 的值;表达式是可返回的 a + b } fn main() { some_syntax(); }