小示例

这里有一个 Rust 的小示例程序:

fn main() {              // 程序入口
    let mut x: i32 = 6;  // 可变的变量绑定
    print!("{x}");       // 用于打印的宏,就像 printf
    while x != 1 {       // 表达式周围没有括号
        if x % 2 == 0 {  // 像其他语言那样的数学运算
            x = x / 2;
        } else {
            x = 3 * x + 1;
        }
        print!(" -> {x}");
    }
    println!();
}

这个代码实现了 Collatz 猜想:人们相信循环将总是结束,但是这尚未得到证实。编辑代码并以不同输入值运行。

要点:

  • 解释所有的变量都是静态类型的。尝试移除 i32 来触发类型推导。尝试使用 i8 并触发一个运行时整数溢出。

  • 更改 let mut xlet x,讨论编译器错误。

  • 展示如果参数和格式化字符串不匹配时 print! 会如何给出编译错误。

  • 展示当你想要打印一个更复杂的表达式而不是单个变量时,你需要如何使用 {} 作为占位符。

  • 向学生展示标准库和如何搜索 std::fmt,它有着格式化相关的微型语言的规则。学生熟悉搜索标准库是非常重要的。