当前位置:网站首页>【一起学Rust】Rust的Hello Rust详细解析
【一起学Rust】Rust的Hello Rust详细解析
2022-07-31 05:08:00 【m0_67402125】
跟随本篇文章,你将学会编写Rust的Hello World,并且对Rust编程有个初步的了解。
文章目录
前言
在上一小结中,我们搭建了 Rust 的开发环境,并且使用 Rust 的包管理工具 Cargo 运行了官方提供的示例程序。
本节我们将使用 Rust 来实现一个 Hello World。当你学习任意一门编程语言时,学习的第一门课就是 Hello World,通过 Hello World 你可以了解这门编程语言基本上是什么样子的,怎么编程,对其一些语法特性能有个基本的了解。
一、创建项目目录
Rust 原本是提供了包管理工具 Cargo 的,它提供了项目创建的功能,可以创建一个完整的 Rust 项目,但是 Rust 实际上运行可以不依赖其他的项目文件。
Rust 就和 C 语言差不多,有可以将源码单独编译成一个文件的能力。就像你写了个 main.c
,里面写了 Hello World,然后执行 cl main.c
一样。这是预编译类型语言一个相当强大的能力,强如 Java 使用 javac
编译出来的也只是字节码文件,需要借助 JVM 才可以运行,而 Rust 编译的文件则可以不借助于运行时
运行。
因此,现在我们使用 Rust 来做这件事。首先就是新建一个文件夹
,这个文件夹在什么地方你可以自己定,只要你能找到它就行,你甚至可以创建在桌面。我就创捷到了一个地方,并且将这些项目名字规整的放在一起,方便查看。
二、编写Hello World
现在,找到你创建的文件夹,进入这个文件夹,然后创建个文件 main.rs
,就像下面图中一样,
然后在空白处 右击
,并选择 使用vscode打开
。
其实 Rust 是不限制你使用何种代码编辑器的,哪怕是记事本也可以编写 Rust 代码,我们这里为了方便,就选择了 vscode。
然后在 写代码区域
中写入以下代码,
fn main() {
println!("hello rust!");
}
这样 Hello World 就编写完成了。
三、运行程序
运行这个 Rust 程序分为两个步骤,
- 编译
- 运行
编译: 就是将代码编译成二进制可执行程序。
在 vscode 的下方,有个终端选项卡,如下图
编译
现在我们开始编译刚才写的代码,在终端
中输入以下命令运行编译程序,
rustc main.rs
如果没有出现错误,你将出现和我一样的界面
在文件目录会多出两个文件,main.exe
和 main.pdb
。
main.exe
是编译好的可执行文件,你在文件管理器界面直接双击就可以运行main.pdb
是一个包含调试信息的文件
运行
现在我们来运行这个可执行文件,在终端中输入以下命令运行程序
.main.exe
在终端中就会输出 Hello World了。
现在我们在文件管理器中文件,首先进入你创建项目的文件夹,
双击 main.exe
,你就会发现什么也没有出现,就是电脑屏幕闪了一下。这是没有问题的,因为我们创建的是命令行程序,是没有窗口的,在程序输出完 Hello World 以后就运行结束了,所以什么都看不到。
在空白处 右击
,选择 打开终端
,然后输入以下命令运行,可以得到和之前一样的结果。
.main.exe
四、分析Hello World
接下来我们对这个编写并运行 Hello World 的流程进行分析。
源码分析
在这段简短的源码中,我们创建了一个 main
函数,并且输出了 Hello World, 以下内容是你要注意的,
- 入口函数是
main
,遵循大多数编程语言的传统
- 大括号标明作用域
- 创建
main
函数,()
中没有内容表示不接受参数
- 语句分号结尾
除此以外,还有一些东西,是我们后面才会学到的东西,你有兴趣可以了解一下,
println!
并不是一个函数调用,这是个宏调用,如果你见到!
表示这是个宏- Rust 缩进风格使用 4 个空格,而不是 1 个制表符
tab
编译过程
在 Rust 中,编译和运行是独立的步骤,你需要将源码编译成可执行文件
,然后再执行这个可执行文件
,
我们使用以下命令进行编译,
rustc main.rs
rustc
是 Rust提供的将源码编译成为可执行文件的程序,接收一个文件名
。main.rs
是源文件的文件名,这里被当作参数传递给 rustc- 两部分要使用空格 隔开,区分传递给程序的参数
总结
现在,你已经学会使用 Rust 来编写一个 Hello World,并且对 Rust 编译和执行有所了解。
作业
考虑以下问题,重复自己在脑海中学过的东西,使对其印象更加深刻,从而让你对本章知识有更深的理解。
- 使用 Rust 输出你的名字
- 回顾 Rust 的编译和运行
边栏推荐
- [Detailed explanation of ORACLE Explain]
- Sun Wenlong, Secretary General of the Open Atom Open Source Foundation |
- mysql stored procedure
- ES source code API call link source code analysis
- visual studio 那些提高效率的快捷键,总结(不时更新)
- Hand in hand to realize the picture preview plug-in (3)
- MySQL事务隔离级别详解
- Unity URP渲染管线摄像机核心机制剖析
- 1. 获取数据-requests.get()
- Minesweeper game - C language
猜你喜欢
[Linear Neural Network] softmax regression
Unity资源管理系列:Unity 框架如何做好资源管理
MySQL database backup
Unity教程:URP渲染管线实战教程系列【1】
MySQL transaction isolation level, rounding
矩池云快速安装torch-sparse、torch-geometric等包
On-line monitoring system for urban waterlogging and water accumulation in bridges and tunnels
Temporal介绍
STM32HAL库修改Hal_Delay为us级延时
STM32 - DMA
随机推荐
扫雷小游戏——C语言
[R language] [3] apply, tapply, lapply, sapply, mapply and par function related parameters
限流的原理
Lua,ILRuntime, HybridCLR(wolong)/huatuo hot update comparative analysis
【R语言】【3】apply,tapply,lapply,sapply,mapply与par函数相关参数
MySQL事务(transaction) (有这篇就足够了..)
Open Source Database Innovation in the Digital Economy Era | 2022 Open Atom Global Open Source Summit Database Sub-Forum Successfully Held
MySQL database backup
Unity教程:URP渲染管线实战教程系列【1】
DVWA靶场环境搭建
npm、nrm两种方式查看源和切换镜像
MySQL事务隔离级别详解
CentOS7 - yum install mysql
Sql解析转换之JSqlParse完整介绍
Centos7 install mysql5.7 steps (graphical version)
ABC D - Distinct Trio(k元组的个数
【云原生】DevOps(五):集成Harbor
30 Years of Open Source Community | 2022 Open Atom Global Open Source Summit 30 Years of Open Source Community Special Event Held Successfully
mysql uses on duplicate key update to update data in batches
Simple read operation of EasyExcel