核心语法与结构对比
从 JavaScript 视角学习 Rust 基础语法,包括变量声明、数据类型、控制流和函数定义
核心语法与结构对比
📖 学习目标
通过对比 JavaScript 和 Rust 的基础语法,快速掌握 Rust 的核心概念。我们将从你熟悉的 JavaScript 语法出发,逐步引入 Rust 的语法特性。
🎯 变量声明与作用域
在 JavaScript 中,我们使用 var、let 和 const 来声明变量:
正在加载编辑器...
关键差异
- 默认不可变性: Rust 中变量默认不可变,需要
mut关键字才能修改 - 变量遮蔽: Rust 允许在同一作用域内重新声明同名变量
- 类型推导: Rust 编译器可以自动推导变量类型
📊 基本数据类型对比
正在加载编辑器...
类型系统差异
- 静态 vs 动态: Rust 在编译时检查类型,JavaScript 在运行时检查
- 整数类型: Rust 有多种整数类型(i8, i16, i32, i64, u8, u16, u32, u64)
- 字符串: Rust 区分
String(拥有所有权)和&str(借用)
🔄 控制流对比
正在加载编辑器...
控制流差异
- if 表达式: Rust 的
if可以返回值,用于赋值 - match 语句: 比 JavaScript 的
switch更强大,支持模式匹配 - 循环语法: Rust 使用
for in语法,更简洁
🏗️ 函数定义对比
正在加载编辑器...
函数差异
- 类型注解: Rust 需要为参数和返回值指定类型
- 返回值: Rust 函数的最后一个表达式自动作为返回值
- 默认参数: Rust 通过
Option类型实现默认参数 - 函数签名: Rust 的函数签名更明确,有助于编译时检查
🎭 闭包对比
正在加载编辑器...
闭包差异
- 语法: Rust 闭包使用
|参数|语法 - 所有权: Rust 闭包需要考虑所有权和借用
- 类型推导: Rust 编译器可以推导闭包类型
- 迭代器: Rust 闭包与迭代器结合使用更自然
🎯 练习题
练习 1: 变量声明转换
将以下 JavaScript 代码转换为 Rust 代码:
正在加载编辑器...
查看答案
正在加载编辑器...
练习 2: 函数转换
将以下 JavaScript 函数转换为 Rust 函数:
正在加载编辑器...
查看答案
正在加载编辑器...
练习 3: 控制流转换
将以下 JavaScript 代码转换为 Rust 代码:
正在加载编辑器...
查看答案
正在加载编辑器...
📝 总结
在这一章中,我们学习了:
- 变量声明: Rust 默认不可变,需要
mut关键字才能修改 - 数据类型: Rust 是静态类型语言,类型在编译时确定
- 控制流: Rust 的
if是表达式,match比switch更强大 - 函数: Rust 需要类型注解,最后一个表达式是返回值
- 闭包: Rust 闭包语法简洁,需要考虑所有权
关键要点
- Rust 的语法更严格,但提供了更好的安全性和性能
- 从 JavaScript 迁移到 Rust 需要适应静态类型系统
- Rust 的所有权系统将在后续章节中详细介绍
- 多练习,多对比,逐步适应 Rust 的编程思维
在下一章中,我们将学习 Rust 的模块系统和包管理,了解如何组织和管理 Rust 项目。
继续学习: 模块系统与构建工具