Hello,World
你已经安装了Rust,现在让我们写出第一个Rust程序。当学习一个新的语言时,在屏幕上打印Hello,Worldr!的一小段程序是一个传统。所以让我们开始吧。
注意:本书假序曲你基本熟悉命令行。Rust并不指定需要特定的编辑工具编写代码,所以如果你喜欢使用集成IDE代替命令行,你可使自由使用你最爱的IDE。一些IDE开始支持Rust,查看IDE文档获取详细信息。Rust团队已经开始构建rust-analyzer去支持Rust。
创建一个项目目录
首先创建一个目录用来存储你的Rust代码。无论你的代码在哪里Rust都没问题。但是本练习和本书的项目,我们建议在你的用户home目录创建projects目录并且将项目放在哪里。
打开终端且输入下面命令创建一个项目目录,同时在~/projects创建helloworld项目路径.
在linux,MacOS,和Powershell,输入如下:
$ mkdir ~/projects
$ cd ~/projects
$ mkdir hello_world
$ cd hello_world
Windows CMD ,输入如下:
> mkdir "%USERPROFILE%\projects"
> cd /d "%USERPROFILE%\projects"
> mkdir hello_world
> cd hello_world
编辑和运行一个Rust程序
接下来,创建一个源代码文件,并命名为main.rs。Rust文件以.rs扩展名结尾。如果你使用多个单词作为文件名,请用下划线进行分隔。例如,hello_world.rs而不是helloworld.rs
现在打开main.rs文件并输入以下代码
文件名:main.rs
fn main() {
println!("Hello, world!");
}
保存文件,回到终端窗口到~/projects/hello_world目录。在linux 和macOS,输入以下命令编译和运行文件:
$ rustc main.rs
$ ./main
Hello, world!
在Windows上,输入命令.\main.exe替代./main
> rustc main.rs
> .\main.exe
Hello, world!
与你操作系统无关,Hello,world!字符串将会打印到终端上。如果你不能看到输出,参考 安装小节“Troubleshooting” 部分得到帮助。
如果Hello,world!打印出来,㳟喜你,你已 经正式 写出了一个Rust程序。这让你成为了Rust程序员——欢迎。
Rust程序解剖
让我们申视一下hello world程序细节。首先是下面的困惑的代码
fn main() {
}
此行定义一个叫main的函数。main函数是特殊函数:他总是在每个可执行Rust程序中首先执行。因此,第一个声明一个名字叫main的函数,main函数没有参数,没有返回值。如果有参数,他们
写在括号里
函数体用{}括起来,Rust要求成对的大括号包信函数体。将半个大括号和函数声名放在一行是个好方式,并在括号和函数声名间加上空格。
注意:如果您希望在Rust项目中坚持标准样式,可以使用名为rustfmt的自动格式化工具以特定样式格式化代码(更多信息请参见附录D中的rustfmt)。Rust团队已经在标准Rust发行版中包含了这个工具,比如rustc,所以它应该已经安装在您的计算机上了!
main函数体中包含以下代码
println!("Hello, world!");
这行完成了这个小程序的所有工作:它将文本打印到屏幕上。这里有四个重要的细节需要注意。
首先,Rust样式是用四个空格缩进,而不是制表符。
第二,打印!调用Rust宏。如果它调用了一个函数,它将被输入为println(没有!)。我们将在第19章中更详细地讨论Rust宏!这意味着您调用的是宏而不是普通函数,并且宏并不总是遵循与函数相同的规则。
第三,你看到“你好,世界!”一串我们将此字符串作为参数传递给println!,并且该字符串被打印到屏幕上。
第四,我们以分号(;)结尾,这表示该表达式已结束,下一个表达式已准备好开始。Rust代码的大多数行以分号结尾。
编译和运行是分开的步骤
您刚刚运行了一个新创建的程序,所以让我们来检查过程中的每个步骤。
在运行Rust程序之前,必须通过输入rustc命令并将源文件的名称传递给它,使用Rust编译器对其进行编译,如下所示:
$ rustc main.rs
如果您有C或C++背景,您会注意到这类似于gcc或clang。编译成功后,Rust输出一个二进制可执行文件。
在Linux、macOS和Windows上的PowerShell上,可以通过在shell中输入ls命令来查看可执行文件。在Linux和macOS上,您将看到两个文件。使用Windows上的PowerShell,您将看到与使用CMD相同的三个文件。
$ ls
main main.rs
在windows的CMD窗口,输入以下命令:
> dir /B %= the /B option says to only show the file names =%
main.exe
main.pdb
main.rs
这显示了扩展名为.rs的源代码文件、可执行文件(在Windows上为main.exe,但在所有其他平台上为main),以及使用Windows时包含扩展名为.pdb的调试信息的文件。从这里开始,您可以运行main或main。exe文件,如下所示:
$ ./main # or .\main.exe on Windows
如果main.rs是你的“你好,世界!”程序,这行打印你好,世界!到您的终端。
如果您更熟悉动态语言,如Ruby、Python或JavaScript,您可能不习惯将程序编译和运行作为单独的步骤。Rust是一种提前编译的语言,这意味着你可以编译一个程序并将可执行文件交给其他人,他们甚至可以在没有安装Rust的情况下运行它。如果给某人提供.rb、.py或.js文件,他们需要分别安装Ruby、Python或JavaScript实现。但在这些语言中,您只需要一个命令来编译和运行程序。一切都是语言设计的权衡。
对于简单的程序来说,只需使用rustc进行编译就可以了,但随着项目的增长,您将需要管理所有选项,并使共享代码变得容易。接下来,我们将向您介绍Cargo工具,它将帮助您编写真实世界的Rust程序。
3181

被折叠的 条评论
为什么被折叠?



