原文地址 http://doc.rust-lang.org/book/hello-world.htmljavascript
好啦,如今你已经把Rust语言都安装好了,让咱们开始写第一个Rust程序。按照传统来讲,咱们都通常把学习一门新语言的第一个程序的内容就是把“hello world”输出到屏幕上面去。经过这个简单程序,咱们能够很方便地验证咱们的编译器是否安装完成和可否顺利地工做起来,输出屏幕信息是最多见的作法。html
第一件事咱们须要作的是把咱们的代码写在一个文件上,我喜欢在个人主目录下面创建一个项目目录(project dir),并把我全部代码的项目放在这里,不用担忧rust并在意你的代码在哪里。java
上述会致使一个咱们必须具有的前提:这个指南假设你已经很是熟悉命令行。(~_~) rust并无对你的编辑工具备特殊的需求,甚至你的代码位置。若是你偏心于IDE的话,你能够尝试一下SolidOak这个工具,或者你喜欢的IDE搭配上任何的插件。如今有不少不一样质量拓展的社区。rust的团队也带给你们不一样编辑器的插件。配置你的编辑器和ide并不在本教程的范围,特别是检查你配置你编辑器的文档。python
好的,按照咱们上面所说咱们开始创建咱们rust project的目录linux
$ mkdir ~/projects $ cd ~/projects $ mkdir hello_world $ cd hello_world
若是你在window系统下而且不用powershell,这个~符号可能不会起做用。咨询你的shell,查看细节吧。c++
让咱们建一个新的源文件。咱们将这个文件命名为main.rs。rust的源文件老是会以.rs的后缀名结尾的。若是你想使用多于一个单词的文件名,我建议使用下划线:程序员
hello_world.rs 比 helloworld.rs要更加的清晰。shell
如今你打开文件,输入如下代码:编程
fn main() { println!("Hello, world!"); }
保存文件,并在你的终端窗口输入:小程序
$ rustc main.rs $ ./main # or main.exe on Windows Hello, world
成功了!让咱们回顾刚才发生的细节。
fn main() { }
这些行定义了Rust的方法。这个main方法是特殊的存在:它是所用rust程序开始的地方,第一行声明了”我在定义一个没有参数和返回值的main方法“ 若是是有参数的方法,参数会包含在括号里面。由于咱们没有在此方法返回任何的东西,因此咱们彻底能够忽略这个方法的返回类型。后面咱们会有深刻地了解这一部分。
你可能也注意到整个方法定义在这个{}括号所包围着。rust须要这个去声明方法体的内容,它被认为是一个良好的代码格式,被两个大括号包围起来的空间做为函数的定义。
接下来是这一行
println!("Hello,world!);
咱们的小程序在这一行已经完成全部的工做。这里有不少细节。第一个地方是这里须要四个空格而不是tab(制表符)。请配置你的编辑器使用tab键会插入四个空格符。咱们这里提供多种编辑器的配置。http://doc.rust-lang.org/book/hello-world.html
第二地方时println!()地方。这里调用rust的宏,宏就是rust已经帮你完成元变成。若是它被一个方法替换,它看起来会是这样一个样子:println()。咱们这样作目的,咱们不再须要在乎二者的差异,咱们只须要知道,当你看到!这个感叹号的时候,那就意味着你正在调用宏而不是普通方法。rust做为宏去实现 println!方法而不是普通方法有不少的好处,可是这是一个高级的话题。最后咱们须要注意的是rust的宏与c语言的宏有着本质性区别,若是你准备使用它的话,不要惧怕去使用它。咱们最后会知道上面所说的细节,如今你只须要相信我就能够了。
接下来地方时,”Hello,world!“是一个字符串类型。字符串也是一个使人惊叹的复杂话题在系统编程语言里面,这是一个”静态分配“的字符串。若是你想更加深刻了解这个分配的过程,你能够查一下 the stack and the heaphttp://doc.rust-lang.org/book/the-stack-and-the-heap.html这一章节内容。咱们须要把这个字符串当作一个参数pringln!方法输出到屏幕上就能够了
最后,这一行已分号做为结尾。rust是一门”面向表达“的语言,在rust语言里面大部分都是做为表达式而不是语句。这个;表达告终束的表达式,同时代表下一个准备开始。在rust里面大部分行都是以分号;结束。
最后,咱们编译和运行咱们程序。咱们能够经过咱们的rustc编译器来编译,经过给编译器+源文件的名字。
rustc main.rs
这和gcc和clang的编译很是类似,若是你有着c或者c++的背景。Rust会产生一个二进制的执行文件。你能够经过ls命令查看到(linux或mac下)
$ ls main main.rs
或者在window下面
$ dir main.exe main.rs
如今就有两个文件,一个是咱们的源代码文件(以rs结尾的可执行文件)
$ ./main # or main.exe on Windows
这个将会在咱们的终端上打印出 Hello,world!
若是你是从动态语言(python,javascript)学习rust的话,你可能未曾经历过上诉的两个步骤。rust是一门提早编译的语言。这意味着你能够编译你的程序,把可执行的文件给到其余任何人,别人不须要安装rust。若是你给任何一我的以.rb ,.py和.js的文件,别人就相应的安装ruby,python和javascript,可是你只要一行命令就能够编译并运行你的程序。在任何一门语言设计的时候都有一个权衡,rust只是实现它本身的方式。
恭喜你!你已经能够证明写出一个rust的程序,那会引导你成为一个rust的程序员。很是欢迎^_^
下一章,我想推荐给你另一个工具,叫Cargo。这是一个用于工做中rust编程。rustc编译器对简单的东西比较友好,可是若是你的项目增加,你会须要一个帮助你去管理全部选项,而且让你很是容易分享你的代码给其余的人。