第一个Rust程序——Hello,world!

既然你已经安装了Rust,我们开始写第一个Rust程序吧。在任何一种新语言中的第一个程序是在屏幕上输出“Hello,world!”是一个传统。以这样一个简单的程序开始的好处是,它不仅可以检验你已经安装了编译器,而且还能验证它是否正常工作。并且往屏幕上输出东西是一个很平常的事情。

第一件要做的事情是创建一个保存我们的代码的文件。我喜欢在我的home目录中创建一个projects目录,把我所有的工程都放在这个目录中。Rust并不关心你的代码放在哪。

这里我们有必要说明一点:我们假设你基本熟悉命令行的基本操作。Rust对编辑器没有特殊的要求,也不关系你的代码保存在何处。如果你选择一个IDE(集成开发环境)而不是命令行,可能需要查看SolidOak,或者你喜欢的IDE的插件所在之处。社区正在开发这些扩展。Rust团队也正在定制plugins
for various editors
。配置你的编辑器或IDE并不是本文章的重点,所以请查阅文档,此处不做过多介绍。

首先,在我们的projects目录下创建一个目录

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

如果你使用的是Windows并且没有使用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!");

这一行是我们程序所做的所有工作。在这里有许多要注意的细节。第一个需要注意的是是以4个空格开头,并不是tab键。请配置你的编辑器,使用tab键的时候插入4个空格。对多种编辑器我们提供了简单的配置

第一个要点是println!()部分。这被称作Rust宏,这是Rust元编程所作的。如果这是一个函数,看起来会是这样子的:println()。对我们的目的而言,我们不需要关心此处的不同。仅仅需要知道的是,有些时候你看到一个!,它意味着你正在调用一个宏而不是一个函数。Rust将println!实现为一个宏而不是一个函数是有许多原因的,但是这是一个高级话题。最后一件需要注意的事情:Rust的宏与C语言的宏是千差万别的。不要害怕使用宏。我们最终将会深入其细节,现在你需要做的仅仅是相信我们就可以啦。

“Hello, world!”是一个‘string’。字符串是系统编程语言中一个相当复杂的话题,并且这是一个‘静态分配’的字符串。如果你想进一步了解分配,请阅读堆和栈,如果你不想也不用立即去阅读。我们将这个字符串作为println!的参数传递给它,它将字符串输出到屏幕上。够简单吧!

最后,语句以‘;’结尾。Rust是一门‘面向表达式’的语言,这意味着绝大多数东西是表达式,而不是声明。‘;’表示这个表达式结束和下个表达式的开始。绝大多数的Rust代码以‘;’结束。

最终,我们并以并运行我们的程序。我们可以使用编译器rustc编译我们的程序,需要将文件名传递给它:

$ rustc main.rs

如有你有c或c++背景,这与gcc或clang类似。Rust将会生成一个二进制可执行程序。你可以使用ls查看:

$ ls

main  main.rs

或者在Windows上:

$ dir

main.exe  main.rs

现在有两个文件:以.rs结尾的我们的源代码文件和可执行文件(在Windows上是main.exe,其它平台上是main)

$ ./main  # or main.exe on Windows

终端会输出Hello, world!

如果你使用过动态语言如Ruby、Python或JavaScript,你可能不习惯将这两步分开。Rust是一个提前编译语言(ahead-of-time compiled language),这意味着你可以将编译过的可执行程序发送给任何人,他们不需要安装rust。如果你给某人.rb、.py或者.js文件,他们需要安装Ruby、Python或JavaScript运行环境,但是你只需一个命令即可编译、运行你的程序。在语言设计中,一切都要做出取舍折衷,Rust已经做出了它的选择。

恭喜!你已经正式编写了一个Rust程序。现在你已经是一名Rust程序员了!

接下来,我会介绍另一个工具Cargo,这是一个用于编写真实世界Rust程序的工具。小程序使用rustc还不错,但随着项目增长,就可能需要某种工具帮助管理所有选项,更方便与其他人和项目分享代码。

时间: 2024-10-10 21:16:44

第一个Rust程序——Hello,world!的相关文章

第一个JAVA程序解析

上一篇博客中,我们编写了第一个JAVA程序并使用最原始的方式对其进行编译运行,很多文章或书籍中对该种编译运行方式不做介绍,但是我认为这有助于我们更好的了解.学习JAVA,是不可忽略的一部分,在我身边有很多人,学完一段时间JAVA后,只知道如何在IDE中进行开发,却不知脱离IDE后该如何运行,不得不说这也是一种悲哀. 言归正传,我们来看一下上一篇博客中的例子"Hello World",这也是几乎所有的编程语言都会编写的一个例子,非常的经典. 下面我们就来分析一下: /**  *  我的第

二、第一个ExtJS程序:helloExtJS

开发前的准备 下载并解压ExtJS包后,可以得到下图的文件目录结构: 在实际开发过程中并不需要所有的文件和目录,所需的包含如下目录即可: 若使用eclipse进行开发,只需将上述文件复制到WebRoot目录或其子目录. 开始 新建firstextjs.html 在使用ExtJS之前,需要在页面引入相应的样式和js文件,一般包括的最小集合是这样:ext-all.js,adapter/ext/ext-base.js,locale/ext-lang-zh_CN.js和整个resources目录. ex

当世界上只剩下一个Java程序员

公元2050年,世界上只剩下了一个Java程序员. 你可能要问了,别的人都去哪儿了?原因很简单, Java没落了. 大约在2030年左右,出现了一个叫做X的语言,它既能做系统级开发(操作系统.数据库.编译器),也能做服务器端的开发,手机端,Web端都不在话下. 更为重要的是,这个新的编程语言和人类的自然语言很接近,无论大人小孩,稍微一学,很快就可以来编程.于是排名前100的语言统统消失了, 程序员们都失业了. Java也不例外,这个昔日的霸主在留下了一堆庞大而复杂的系统以后就不见了. Java程

作为一个女程序员,有感而发

下午,在CSDN看到了一篇女程序员的迷茫的贴子,突然有感而发,写下了自己的一些感想,以及为什么我突然会来考教师资格证的奇怪想法(奇怪的想法,这是很多朋友对我的评价). 我是一个女程序员,目前是一个公司的技术架构师,写着项目核的代码,同时管理着一个不大不小的开发团队,今年一开年,大大小小6-7个新项目转到我手上,加上原有的项目维护,就能初步估计这一年又没什么假期了,还必须照顾着下面一群小伙子的心态.做项目,的确很累,特别是对于女性同胞们来讲.但是生活就是这么回事,为了不让IT狂潮把自己给淹没了,必

关于链表的一个小程序

关于链表的一个小程序: /**************************链表*****************************//* 具备功能 *//* 链表按元素位置插入 *//* 链表按元素位置删除 *//* 链表全表遍历 *//* 链表整表创建(头插法) *//* 链表整表创建(尾插法) *//* 链表整表删除 *//**************************链表*****************************/ #include<stdio.h>#in

使用MyEclipse开发第一个Web程序

MyEclipse环境配置 首先,安装一个MyEclipse,然后进行一些相关的环境配置(Window->Preferences): 比如字体.Formatter等. 也可以从Eclipse中导出配置,然后在MyEclipse中导入. 这里需要特别注意的是两个配置: 1.JSP的打开方式: 选为用编辑器打开: Window->Preferences->General->File Associations 然后在右边窗口选jsp,下面选择MyEclipse JSP Editor,在右

JavaWeb学习系列——第一个JavaWeb程序

Eclipse中新建一个Dynamic Web Project 指定项目名称.依赖环境 勾选生成web.xml选项 更改项目编译输出目录,项目右键 ->properties ->Java Build Path ->source ->Default output folder,修改为JavaWeb01/WebContent/WEB-INF/classes 在WebContent文件夹下新建一个index.jsp文件,修改其代码如下 <%@ page language="

原创观点:还在认为企业或个人只能申请一个小程序吗?

今天第一次体验了整个小程序注册流程,使用的是我自己的这个简单的教程(个人无appid如何进行申请开发者权限,简单操作步骤),教程虽然是我的,我自己却没有真的实践过,真是误人子弟,自己也不一定能知道:今天亲自测试了一下:首先走完邮箱验证: 验证完毕后,开始进入信息登录,这里,有一些关键信息,是本文观点的主要支撑: 请输入管理员的身份证号码,一个身份证号码只能注册5个小程序. 然后填写完毕后,到了第二个关键点: 为了验证你的身份,请用绑定了管理员本人银行卡的微信扫描二维码. 这个点,透露了两个信息,

先做一个“小程序”——关于微信应用号的六大猜想

先做一个“小程序”——关于微信应用号的六大猜想 9月 21 日,苦等了9个多月的时间,应用号终于与我们见面了,命名为「小程序」. 01 为什么推出小程序? 考虑到小程序对整个APP市场的影响,毫无疑问会对现有的APP生态带来一定的冲击.但是,之所以推出小程序,最直接的原因可能是为了构建和扩充微信生态链,让微信更具开放性. 如我们所知,目前微信公众号分为三类: • 服务号,连接人和商品,目前很多电商企业,以及在微信端提供产品和服务的企业都用服务号. • 订阅号,微信官方的定位是阅读,连接人和资讯的