Rust 基本概念

今日英语:If you are hopeful,you will be invincible.

下面是 Rust 语言的架构图,之前在知乎上看到的,为了加深体系的理解,自己动手“临摹”了一遍。

rust-arch

  • 第一层编程范式: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();
}

ref

Rust 如何使用堆栈