您的位置:首页 > 其它

2.2 hello world

2015-07-14 00:00 225 查看
摘要: rust文档渣翻译

原文地址 http://doc.rust-lang.org/book/hello-world.html

好啦,现在你已经把Rust语言都安装好了,让我们开始写第一个Rust程序。按照传统来说,我们都一般把学习一门新语言的第一个程序的内容就是把“hello world”输出到屏幕上面去。通过这个简单程序,我们可以很方便地验证我们的编译器是否安装完成和能否顺利地工作起来,输出屏幕信息是最常见的做法。

第一件事我们需要做的是把我们的代码写在一个文件上,我喜欢在我的主目录下面建立一个项目目录(project dir),并把我所有代码的项目放在这里,不用担心rust并在乎你的代码在哪里。

上述会导致一个我们必须具备的前提:这个指南假设你已经非常熟悉命令行。(~_~) rust并没有对你的编辑工具有特殊的需求,甚至你的代码位置。如果你偏爱于IDE的话,你可以尝试一下SolidOak这个工具,或者你喜欢的IDE搭配上任何的插件。现在有很多不同质量拓展的社区。rust的团队也带给大家不同编辑器的插件。配置你的编辑器和ide并不在本教程的范围,特别是检查你配置你编辑器的文档。

好的,按照我们上面所说我们开始建立我们rust project的目录

$ mkdir ~/projects
$ cd ~/projects
$ mkdir hello_world
$ cd hello_world

如果你在window系统下并且不用powershell,这个~符号可能不会起作用。咨询你的shell,查看细节吧。

让我们建一个新的源文件。我们将这个文件命名为main.rs。rust的源文件总是会以.rs的后缀名结尾的。如果你想使用多于一个单词的文件名,我建议使用下划线:

hello_world.rs 比 helloworld.rs要更加的清晰。

现在你打开文件,输入以下代码:

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编译器对简单的东西比较友好,但是如果你的项目增长,你会需要一个帮助你去管理所有选项,并且让你非常容易分享你的代码给其他的人。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: