“Hello,World”
既然你已经安装了Rust,那么让我们来写第一个程序。在屏幕上打印出”Hello,World”一般是学习一门编程语言要写的第一个程序。
我们首先要做的就是创建一个存放代码的文件。在桌面上创建一个存放Rust项目的目录,然后在里面创建第一个工程文件夹”Hello_World”。代码如下:
1
2
3
4
5 1charies:Desktop weichuang$ mkdir Rust_Projects
2charies:Desktop weichuang$ cd Rust_Projects
3charies:Rust_Projects weichuang$ ls
4charies:Rust_Projects weichuang$ mkdir Hello_World
5
接下来,我们创建一个源文件,命名为”main.rs”,Rust文件以”.rs”为扩展名。如果你的文件名含有不止一个单词,要使用下划线”Hello_World.rs”,而不是”HelloWorld.rs”。
打开刚创建的文件,输入:
1
2
3
4 1fn main(){
2 println!("Hello,World");
3}
4
保存文件,在终端输入:
1
2
3
4
5
6
7
8 1charies:Hello_World weichuang$ touch main.rs
2charies:Hello_World weichuang$ vim ./main.rs
3charies:Hello_World weichuang$ rustc main.rs
4charies:Hello_World weichuang$ ls
5main main.rs
6charies:Hello_World weichuang$ ./main
7Hello,World
8
成功啦!让我们来复习一下刚刚所发生的事情。
1
2
3
4 1fn main(){
2
3}
4
上面的代码定义了Rust中的函数。”main()”函数函数是特别的,因为它是每个Rust程序的入口处。
再看下面这行:
1
2 1println!("Hello,World");
2
这行代码在短小的程序中多了所有的工作。这里涉及到许多重要的细节:第一点,这行代码要在前面插入四个空格,而不是指标符。(不过我在vim编辑器中写代码时,是用了制表符)。第二点是println!() 这部分,叫做是Rust宏,也就是Rust中元编程的工作原理。对我们来说,我们不必担心这个差别,只是以后看到” ! “时要知道代码是调用宏而不是普通的函数。Rust将println! 实现成宏而不是函数,有许多原因,那也涉及到一个先进的主题。最后一点要提到的是:Rust中的宏与C语言中的宏。
“Hello,World”是一个”string(即字符串)”。在系统编程语言中,字符串是非常重要的主题,这是一个静态分配内存的字符串。
最后,我们来编译和运行我们的程序。通过Rust的编译器” rustc “来编译我们写的程序,将我们的源文件名传递给它。
1
2 1$ rust main.rs
2
如果你是从C或C++那转过来的话,你会发现rust 编译与gcc 或clang 非常相似。编译后Rust会输出一个可执行的二进制文件,你可以使用ls 来查看:
1
2
3 1charies:Hello_World weichuang$ ls
2main main.rs
3
在Windows系统上,出现这样:
1
2
3 1$ dir
2main.exe main.rs
3
编译后,有两个文件:源代码(以.rs 为扩展名)和可执行文件(Windows中是main.exe,其他地方是main)。
下面来执行我们编译过的文件。
Mac平台:
1
2 1$ ./main
2
Windows平台:
1
2 1main.ext
2
结果是在终端输出Hello,World
如果你是从动态语言(比如,Ruby、Python、JavaScript)那里过来的话,你可能不习惯将编译和运行这两步分开。Rust编译过的程序,别人电脑上没安装Rust也可以直接拿来用。如果你给别人.rb或.py或.js 文件的话,他们电脑上必须要搭建”Ruby、Python、JavaScript”等环境。在语言设计方面,要平衡一切,Rust做出了自己的选择。
恭喜!你已经正式写了一个Rust程序,这也使你成为了一个Rust程序员了。
下一章,我会向大家介绍另一种工具,Cargo,它是用来书写真实世界的Rust程序。处理简单的事嘛,只需要使用”rustc”就可以了。不过随着你的工程越来越壮大,你需要东西来帮助你处理工程中所包含的选项和与其他人分享你的代码和工程。