Rust 是一种系统级编程语言,注重内存安全、并发性和性能。以下是 Rust 的一些基本语法和语义特性:

1. 变量与数据类型:
   - 使用 let 关键字声明变量,变量默认是不可变的。
   - 数据类型包括整数、浮点数、布尔值等。
   - 可以使用 mut 关键字声明可变变量。
    let x = 5;          // 不可变变量
    let mut y = 10;     // 可变变量

2. 函数:
   - 使用 fn 关键字定义函数。
   - 函数参数必须声明类型。
   - 函数体中最后一行的表达式即为返回值。
    fn add(x: i32, y: i32) -> i32 {
        x + y
    }

3. 所有权(Ownership):
   - Rust 通过所有权系统来管理内存,确保内存安全。
   - 每个值都有一个所有者,当所有者离开作用域时,值就会被销毁。
    let s1 = String::from("Hello");
    let s2 = s1;  // s1 的所有权被转移到 s2,s1 无效

4. 借用与引用:
   - 可以通过引用(references)来借用变量的所有权而不转移它。
   - 可以有多个不可变引用,但只能有一个可变引用,且不可变引用和可变引用不能同时存在。
    let s1 = String::from("Hello");
    let len = calculate_length(&s1);
    
    fn calculate_length(s: &String) -> usize {
        s.len()
    }

5. 生命周期(Lifetime):
   - 生命周期指定引用的有效范围,帮助编译器检查引用的合法性。
    fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str {
        if s1.len() > s2.len() {
            s1
        } else {
            s2
        }
    }

6. 模式匹配(Pattern Matching):
   - 使用 match 关键字进行模式匹配,类似于 switch 语句。
    match value {
        1 => println!("One"),
        2 | 3 => println!("Two or Three"),
        _ => println!("Other"),
    }

7. 错误处理:
   - 使用 Result 类型来处理可能的错误。
   - 使用 unwrap 或 expect 可以方便地处理成功或失败情况。
    let result: Result<i32, &str> = Ok(42);
    let value = result.unwrap();

这只是 Rust 的一些基本语法和语义特性的简要介绍。Rust 还有许多其他高级特性,包括模块系统、trait、生命周期参数等,这些都使得 Rust 成为一种强大而安全的编程语言。


转载请注明出处:http://www.zyzy.cn/article/detail/6782/Rust