Hello World¶
Rust程序剖析¶
fn main()
{
}
这几行定义了 Rust 的函数。main 函数(也称为主函数)很特殊:它始终是每个可执行 Rust 程序中运行的第一个代码。第一行声明一个名为 main 的函数,不带参数也没有返回值。如果有参数,那么它们的名字会放到括号内,它们将放在括号 () 内。
另外,请注意,函数主体用大括号 {} 括起来。Rust 需要函数体的所有内容都被括号包围起来。一种好的代码风格是将左大括号放在函数声明的同一行,且之间带有一个空格。
如果想在 Rust 项目中坚持标准代码风格,则可以使用自动格式化程序工具 rustfmt 来将代码格式化为特定风格。Rust 团队已将此工具包含在标准 Rust 发行版中(如 rustc),因此它应该已经安装在你的计算机上!更多相关详细信息,请查看在线文档。
println!("Hello, world!");
该行完成了此简单程序中的所有工作:它将文本打印到屏幕上。这里有 4 个要注意的重要细节。
首先,Rust 风格的缩进使用 4 个空格,而不是制表符。
其次,println! 调用 Rust 宏。如果改为调用函数,则应该将其输入为 println(不含!)
第三,你看到 “Hello, world!” 字符串。我们将这个字符串作为参数传递给 println!,接着 println! 将字符串打印到屏幕上。
第四,我们用分号(;,注意这是英文分号)结束该行,这表明该表达式已结束,下一个表达式已准备好开始。Rust 代码的大多数行都以一个 ; 结尾。
编译和运行是独立的步骤¶
在运行 Rust 程序之前,必须使用 Rust 编译器来编译它,输入 rustc 命令并传入源文件的名称,如下所示:
rustc main.rs
编译成功后,Rust 就会输出一个二进制可执行文件。
Rust 是一门预编译(ahead-of-time compiled)语言,这意味着你可以编译一个程序,将编译后的可执行文件给别人,即使他们没有安装 Rust 也可以运行程序。
使用 rustc 编译对简单的程序可以轻松胜任,但随着项目的增长,你将会想要管理项目中所有相关内容,并想让其他用户和项目能够容易共享你的代码。接下来,我们将引入 Cargo 工具,这将帮助你学会编写真实开发环境的 Rust 程序。
cargo¶
Cargo 是 Rust 的构建系统和包管理器。大多数 Rustacean 们使用 Cargo 来管理他们的 Rust 项目,因为它可以为你处理很多任务,比如构建代码、下载依赖库,以及编译这些库。(我们把代码所需要的库叫做依赖(dependency))。
最简单的 Rust 程序(如我们刚刚编写的)不含任何依赖。所以如果使用 Cargo 来构建 “Hello, world!” 项目,将只会用到 Cargo 构建代码的那部分功能。在编写更复杂的 Rust 程序时,你将添加依赖项,如果使用 Cargo 启动项目,则添加依赖项将更容易。
cargo new
cargo build
cargo run
cargo check 构建项目而无需生成二进制文件来检查错误。
cargo build –release 来优化编译项目。这会在 target/release 而不是 target/debug 下生成可执行文件。这些优化可以让 Rust 代码运行的更快,不过启用这些优化也需要消耗更长的编译时间。