如何编写一个 Rust 程序——Rust语言基础02
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.rs
。Rust
文件总是以 .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
编译成功后便会输出一个二进制的可执行文件(与 c
、c++
代码被 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相关推荐
- 编写程序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)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧 ...
- 在Linux环境下用C语言编写一个乘法程序mult,从命令行接收两个数字,然后输出其乘积;再用C语言编写一个exec1程序,在程序中使用execvp调用mult程序计算5与10的乘积。
在Linux环境下用C语言编写一个乘法程序mult,从命令行接收两个数字,然后输出其乘积:再用C语言编写一个exec1程序,在程序中使用execvp调用mult程序计算5与10的乘积. 1.mult. ...
- C语言学习之编写一个C程序,运行时输人abc三个值,输出其中值最大者。
编写一个C程序,运行时输人abc三个值,输出其中值最大者. #include <stdio.h> void main(){int a,b,c,max;printf("请输入三个数 ...
- 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 ...
- .java编写一个梯形类lader_能够完成相关计算above为高_【Java】编写一个应用程序计算梯形和圆形的面积...
说明:这是武汉理工大学计算机学院[Java语言程序设计]课程实验1:编写一个应用程序计算梯形和圆形的面积. 谨记:纸上得来终觉浅,绝知此事要躬行. Java语言程序设计--实验1:类的设计与对象使用 ...
- wxWidgets:编写一个应用程序
wxWidgets:编写一个应用程序 wxWidgets:编写一个应用程序 这段代码有什么作用? wxWidgets:编写一个应用程序 您好,欢迎来到本教程.像我一样,您可能尝试过使用 Win32 库 ...
- Python学习笔记(二) 第一个Python程序 、 Python基础
Python_02 第一个Python程序 .python基础 第一个python程序 使用python命令行交互模式 使用文本编辑器编辑 输入和输出 python基础 数据类型和变量 字符串和编码 ...
- 编写一个C程序,实现以下功能:编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101。在main函数中输入整数n,调用函数,输出它的二进制
题目要求: 编写一个C程序,实现以下功能: //编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101. //在main函数中输入整数n,调用函数 ...
- java类求圆的面积周长_java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题。编写一个应用程序计算圆的周长和面积,设圆的半...
问题标题 java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题.编写一个应用程序计算圆的周长和面积,设圆的半 2019-5-23来自ip:15.196.194.53的 ...
- 实现两个分数的加减法编写一个C程序,
描述 编写一个C程序,实现两个分数的加减法 输入 输入包含多行数据 每行数据是一个字符串,格式是"a/boc/d". 其中a, b, c, d是一个0-9的整数.o是运算符&q ...
最新文章
- anaconda使用方法
- 19. 邮件提醒(发送邮件)
- linux cpu %us,Linux top里面%CPU和us%的解释
- python三个点画正弦线_python3绘图示例5(基于matplotlib:正弦图等)
- Python函数中参数前带*是什么意思?
- Android 11 修改libcore Cipher AS测试
- php流程控制的类型有哪些,流程控制包括哪些内容
- Liferay Portlet 结构分解
- VS2019 打包WPF安装程序最新教程(图文详解)
- 在Eclipse中安装Subclipse
- CSS 媒体查询 @media【详解】
- 基于TCP的STM32 IAP bootloader初步设计
- 使用Arctime生成各种格式的字幕文件
- EF多表关联数据更新
- matlab 绘制圆光栅,火爆抖音的圆点光栅画怎么做的?
- 台式电脑接路由器步骤_台式电脑连接网络步骤
- 思科设备升级IOS系统的几种方法
- Google Paly 上传支持64 位设备APP
- kaggle竞赛之Hungry Geese比赛
- Android辅助权限实战之微信自动评论与点赞
热门文章
- sparc架构代码分析-NMI看门狗分析
- PythonAI对话机器人
- 【深度报道】从简出发,超融合让企业“一步上云“
- App自动化(1)--Appium-Android环境搭建
- 解决在win10环境下使用python 3 来搭建mumble 的client (没有启动界面,可以实现按键PPT,或者语音激活) 过程中出现的问题
- 国家知识产权局战略规划司赴数据堂调研数据知识产权工作
- 数据产品设计的3个方法论
- 【HTML】HTML网页设计---海贼王动漫前端设计
- 快速上手Amazon SageMaker动手实验室
- 如何借助new bing修复 pyfolio: AttributeError: ‘numpy.int64‘ object has no attribute ‘to_pydatetime‘