1. Hello World!

在所有编程语言的教程中让大家接触的第一段程序便是将 “Hello World!” 这段文字打印到屏幕上,这样的开端被绝大多数语言的教学接受,并往后编程语言也墨守成规。因此我们这里在学习 Rust 语言也不例外的写一段打印 “Hello World!” 的代码作为我们第一段编写的 Rust 代码。

2. 创建项目目录

为了使自己有个良好的工程构建习惯,我们在这里从项目的目录创建开始做起(即便该代码在哪里并不重要,都是可以运行的)。
我们在这里创建一个与 rust 有关的项目目录,之后在其中创建一个具体的项目 “Hello World” 目录作为存储我们编写代码的目录。

imaginemiracle:Code$ mkdir rust_projects
imaginemiracle:Code$ cd rust_projects/
imaginemiracle:rust_projects$ mkdir hello_world
imaginemiracle:rust_projects$ cd hello_world/
imaginemiracle:hello_world$

3. 编写和运行 “Hello World” 程序

接下来,创建一个新的源文件并将其命名为 main.rsRust 文件总是以 .rs 扩展名结尾。如果在文件名中使用多个单词,请使用下划线分隔它们。例如,使用 hello_world.rs 而不是 helloworld.rs

# 打开并创建 main.rs 源文件
imaginemiracle:hello_world$ vim main.rs

编写 “Hello World” 程序的主函数 main

// File: main.rs
fn main() {println!("Hello World!");
}

编译 main.rs 源文件,并执行编译生成的可执行程序。

imaginemiracle:hello_world$ rustc main.rs
imaginemiracle:hello_world$ ls
main  main.rs
imaginemiracle:hello_world$ ./main
Hello World!

这里我们可以看到该段代码编译执行后,会在终端里打印出 “Hello World!” 这段文本和一个换行符。

4. “Hello World” 代码分析

4.1. Rust 语言中的 main 函数

让我们详细回顾一下刚刚在 “Hello, world!” 中发生的事情。首先下面这部分是我们写的第一个部分:

fn main() {}

这些行在 Rust 中定义了一个函数。这个 main 函数很特别:它总是在每个可执行的 Rust 程序中运行的第一个代码。第一行声明了一个名为的函数 main,它没有参数并且不返回任何内容。如果有参数,它们将放在括号内,()

另外,请注意,函数体用大括号括起来,{}Rust 需要这些围绕所有函数体。将左大括号与函数声明放在同一行是一种很好的风格,在两者之间添加一个空格(需要注意的良好的编写习惯)。

如果你想在 Rust 项目中坚持标准风格,你可以使用一个名为的自动格式化工具 rustfmt 来格式化你的代码为特定风格。Rust 团队已将此工具包含在标准的 Rust 发行版中,例如 rustc,因此它应该已经安装在您的计算机上!为了不打断代码分析的进程,笔者将 rustfmt 工具的使用示例放在了后面(本文的 4.3 小节)。

4.2. Rust 中的宏——println!

这是 main 函数的函数体内容。

 println!("Hello World!");

这一行完成了这个小程序中的所有工作:它将文本打印到屏幕上。这里有四个重要的细节需要注意。

(1) Rust 风格是缩进四个空格,而不是制表符 (Tab)。

(2) println! 调用 Rust 宏。如果它改为调用一个函数,它将被输入为 println(不带 !)。我们将在以后更详细地讨论 Rust 宏。现在,您只需要知道使用一个 ! 意味着正在调用宏而不是普通函数,并且宏并不总是遵循 “与” 功能。

(3) 你看到了 "Hello, world!" 字符串。我们将此字符串作为参数传递给 println!,然后将字符串打印到屏幕上。

(4) 我们用分号 ( ; ) 结束这一行,这表示这个表达式已经结束,下一个表达式已准备好开始。大多数 Rust 代码行都以分号结尾。

4.3. 自动调整代码格式工具——rustfmt

这里简单的介绍 rustfmt 工具的使用方法,当安装完 Rust 的发行版后,会连带常用的工具也会安装好,rustfmt 就是其中之一。事实上 rustfmt 的使用方式很简单。
首先,我们将刚刚编写的 main.rs 中的代码格式打乱。

imaginemiracle:hello_world$ cat main.rs
fn
main() {    println!("Hello World!");}

现在,使用 rustfmt 工具自动调整代码格式。

imaginemiracle:hello_world$ rustfmt main.rs
imaginemiracle:hello_world$ cat main.rs
fn main() {println!("Hello World!");
}

可以看到被打乱的代码,已经被排版整齐,是不是很方便!

5. Rust 程序的编译和运行

可能聪明的大家已经注意到了,Rust 程序像大多数语言一样,编译和运行是作为两个步骤分开操作的。我们再回顾一遍刚才的步骤。
首先,我们使用 Rust 编译器通过输入 rustc 命令并将源文件的名称传递给它来编译源文件。

imaginemiracle:hello_world$ rustc main.rs

编译成功后便会输出一个二进制的可执行文件(与 cc++代码被 gcc 编译一样),这里不带扩展名的 main 文件便是编译器输出的二进制可执行文件。当我们执行该文件,便实现了在中终端里打印出 “Hello World!” 这段文字。

imaginemiracle:hello_world$ ls
main  main.rsimaginemiracle:hello_world$ file main
main: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=3e57065668270319df598abd5cbede6207e35eb6, for GNU/Linux 3.2.0, with debug_info, not strippedimaginemiracle:hello_world$ ./main
Hello World!

Boys and Girls!!!
准备好了吗?下一节我们要开始做个小练习了哦!

不!我还没准备好,让我先回顾一下之前的。
上一篇《Rust 环境安装——Rust语言基础01》

我准备好了,掛かって来い(放马过来)!
下一篇《使用 Cargo 构建管理 Rust 项目——Rust语言基础03》


觉得这篇文章对你有帮助的话,就留下一个赞吧v*
请尊重作者,转载还请注明出处!感谢配合~
[作者]: Imagine Miracle
[版权]: 本作品采用知识共享署名-非商业性-相同方式共享 4.0 国际许可协议进行许可。
[本文链接]: https://blog.csdn.net/qq_36393978/article/details/125201468

如何编写一个 Rust 程序——Rust语言基础02相关推荐

  1. 编写程序C语言 用递归法求n,用C语言编写一个递归程序用来计算:1*2+2*3+3*4+.+(n-1)*n...

    用C语言编写一个递归程序用来计算:1*2+2*3+3*4+.+(n-1)*n以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧 ...

  2. 在Linux环境下用C语言编写一个乘法程序mult,从命令行接收两个数字,然后输出其乘积;再用C语言编写一个exec1程序,在程序中使用execvp调用mult程序计算5与10的乘积。

    在Linux环境下用C语言编写一个乘法程序mult,从命令行接收两个数字,然后输出其乘积:再用C语言编写一个exec1程序,在程序中使用execvp调用mult程序计算5与10的乘积. 1.mult. ...

  3. C语言学习之编写一个C程序,运行时输人abc三个值,输出其中值最大者。

    编写一个C程序,运行时输人abc三个值,输出其中值最大者. #include <stdio.h> void main(){int a,b,c,max;printf("请输入三个数 ...

  4. java语言打印1到10的偶数_#Java编程# 编写一个应用程序创建两个线程,一个线程打印输出1~100之间所有的奇数,另外一 求写一个用JAVA求1~...

    import java.util.Random; class A extends Thread { \tint i=1; \tRandom r=new Random(); \tpublic void ...

  5. .java编写一个梯形类lader_能够完成相关计算above为高_【Java】编写一个应用程序计算梯形和圆形的面积...

    说明:这是武汉理工大学计算机学院[Java语言程序设计]课程实验1:编写一个应用程序计算梯形和圆形的面积. 谨记:纸上得来终觉浅,绝知此事要躬行. Java语言程序设计--实验1:类的设计与对象使用 ...

  6. wxWidgets:编写一个应用程序

    wxWidgets:编写一个应用程序 wxWidgets:编写一个应用程序 这段代码有什么作用? wxWidgets:编写一个应用程序 您好,欢迎来到本教程.像我一样,您可能尝试过使用 Win32 库 ...

  7. Python学习笔记(二) 第一个Python程序 、 Python基础

    Python_02 第一个Python程序 .python基础 第一个python程序 使用python命令行交互模式 使用文本编辑器编辑 输入和输出 python基础 数据类型和变量 字符串和编码 ...

  8. 编写一个C程序,实现以下功能:编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101。在main函数中输入整数n,调用函数,输出它的二进制

    题目要求: 编写一个C程序,实现以下功能: //编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101. //在main函数中输入整数n,调用函数 ...

  9. java类求圆的面积周长_java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题。编写一个应用程序计算圆的周长和面积,设圆的半...

    问题标题 java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题.编写一个应用程序计算圆的周长和面积,设圆的半 2019-5-23来自ip:15.196.194.53的 ...

  10. 实现两个分数的加减法编写一个C程序,

    描述 编写一个C程序,实现两个分数的加减法 输入 输入包含多行数据  每行数据是一个字符串,格式是"a/boc/d".  其中a, b, c, d是一个0-9的整数.o是运算符&q ...

最新文章

  1. anaconda使用方法
  2. 19. 邮件提醒(发送邮件)
  3. linux cpu %us,Linux top里面%CPU和us%的解释
  4. python三个点画正弦线_python3绘图示例5(基于matplotlib:正弦图等)
  5. Python函数中参数前带*是什么意思?
  6. Android 11 修改libcore Cipher AS测试
  7. php流程控制的类型有哪些,流程控制包括哪些内容
  8. Liferay Portlet 结构分解
  9. VS2019 打包WPF安装程序最新教程(图文详解)
  10. 在Eclipse中安装Subclipse
  11. CSS 媒体查询 @media【详解】
  12. 基于TCP的STM32 IAP bootloader初步设计
  13. 使用Arctime生成各种格式的字幕文件
  14. EF多表关联数据更新
  15. matlab 绘制圆光栅,火爆抖音的圆点光栅画怎么做的?
  16. 台式电脑接路由器步骤_台式电脑连接网络步骤
  17. 思科设备升级IOS系统的几种方法
  18. Google Paly 上传支持64 位设备APP
  19. kaggle竞赛之Hungry Geese比赛
  20. Android辅助权限实战之微信自动评论与点赞

热门文章

  1. sparc架构代码分析-NMI看门狗分析
  2. PythonAI对话机器人
  3. 【深度报道】从简出发,超融合让企业“一步上云“
  4. App自动化(1)--Appium-Android环境搭建
  5. 解决在win10环境下使用python 3 来搭建mumble 的client (没有启动界面,可以实现按键PPT,或者语音激活) 过程中出现的问题
  6. 国家知识产权局战略规划司赴数据堂调研数据知识产权工作
  7. 数据产品设计的3个方法论
  8. 【HTML】HTML网页设计---海贼王动漫前端设计
  9. 快速上手Amazon SageMaker动手实验室
  10. 如何借助new bing修复 pyfolio: AttributeError: ‘numpy.int64‘ object has no attribute ‘to_pydatetime‘