【一起学Rust】Rust的Hello Rust详细解析

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 【一起学Rust】Rust的Hello 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 程序分为两个步骤,

  1. 编译
  2. 运行

编译: 就是将代码编译成二进制可执行程序。

在 vscode 的下方,有个终端选项卡,如下图

编译

现在我们开始编译刚才写的代码,在终端中输入以下命令运行编译程序,

rustc main.rs

如果没有出现错误,你将出现和我一样的界面

在文件目录会多出两个文件,main.exemain.pdb

  • main.exe是编译好的可执行文件,你在文件管理器界面直接双击就可以运行
  • main.pdb是一个包含调试信息的文件

运行

现在我们来运行这个可执行文件,在终端中输入以下命令运行程序

.\main.exe

在终端中就会输出 Hello World了。

现在我们在文件管理器中文件,首先进入你创建项目的文件夹,

双击 main.exe ,你就会发现什么也没有出现,就是电脑屏幕闪了一下。这是没有问题的,因为我们创建的是命令行程序,是没有窗口的,在程序输出完 Hello World 以后就运行结束了,所以什么都看不到。

在空白处 右击 ,选择 打开终端 ,然后输入以下命令运行,可以得到和之前一样的结果。

.\main.exe


四、分析Hello World

接下来我们对这个编写并运行 Hello World 的流程进行分析。

源码分析

在这段简短的源码中,我们创建了一个 main 函数,并且输出了 Hello World, 以下内容是你要注意的,

  1. 入口函数是 main ,遵循大多数编程语言的传统

  1. 大括号标明作用域

  1. 创建 main 函数,() 中没有内容表示不接受参数

  1. 语句分号结尾

除此以外,还有一些东西,是我们后面才会学到的东西,你有兴趣可以了解一下,

  • println! 并不是一个函数调用,这是个宏调用,如果你见到 ! 表示这是个宏
  • Rust 缩进风格使用 4 个空格,而不是 1 个制表符 tab

编译过程

在 Rust 中,编译和运行是独立的步骤,你需要将源码编译成可执行文件,然后再执行这个可执行文件

我们使用以下命令进行编译,

rustc main.rs
  • rustc 是 Rust提供的将源码编译成为可执行文件的程序,接收一个文件名
  • main.rs 是源文件的文件名,这里被当作参数传递给 rustc
  • 两部分要使用空格 隔开,区分传递给程序的参数

总结

现在,你已经学会使用 Rust 来编写一个 Hello World,并且对 Rust 编译和执行有所了解。


作业

考虑以下问题,重复自己在脑海中学过的东西,使对其印象更加深刻,从而让你对本章知识有更深的理解。

  1. 使用 Rust 输出你的名字
  2. 回顾 Rust 的编译和运行
目录
相关文章
|
3天前
|
Rust 安全 开发者
Rust语言的Hello, World! 程序解析
Rust语言的Hello, World! 程序解析
7 0
|
2月前
|
Rust 安全 程序员
使用Rust进行系统编程:安全性优势深度解析
【5月更文挑战第14天】Rust,Mozilla开发的系统编程语言,以其内存安全、并发支持和静态类型系统在系统编程中脱颖而出。所有权和借用检查机制消除内存错误,无锁并发原语提升安全性,静态类型减少运行时错误,最小权限原则降低权限风险。强大的社区支持和安全审计进一步确保了代码的安全性和稳定性,使Rust成为安全高效系统编程的理想选择。
|
2月前
|
运维 网络协议 网络架构
|
2月前
|
Rust 安全 程序员
Rust vs Go:解析两者的独特特性和适用场景
在讨论 Rust 与 Go 两种编程语言哪种更优秀时,我们将探讨它们在性能、简易性、安全性、功能、规模和并发处理等方面的比较。同时,我们看看它们有什么共同点和根本的差异。现在就来看看这个友好而公平的对比。
|
2月前
|
Rust 算法 安全
【Rust中的所有权系统深入解析】A Deep Dive into Rust‘s Ownership System
【Rust中的所有权系统深入解析】A Deep Dive into Rust‘s Ownership System
46 0
|
2月前
|
Rust Java 调度
Rust中的异步编程利器:Tokio框架解析
在Rust生态系统中,Tokio已经成为异步编程的首选框架。本文将对Tokio进行深入探讨,分析其关键特性、工作原理以及如何在Rust项目中使用Tokio进行高效的异步编程。我们将通过示例代码展示Tokio如何简化异步操作,提升程序性能,并讨论Tokio在处理并发任务时的优势。
|
2月前
|
存储 Rust 安全
Rust中的变量与常量:定义与使用的深入解析
本文将详细探讨Rust编程语言中变量与常量的定义、特性及其使用场景。我们将从基本概念出发,逐步深入到Rust的内存管理、所有权系统和不变性原则,帮助读者更好地理解和应用这两种基础元素。
|
2月前
|
Rust 安全 程序员
Rust中的异步编程:Futures与Async/Await的深入解析
Rust作为一种系统级编程语言,近年来因其内存安全、高性能和并发处理能力而受到广泛关注。在Rust中,异步编程是实现高效并发处理的关键。本文将探讨Rust中的异步编程概念,详细介绍Futures与Async/Await这两种主要实现方式,并解析它们在实际应用中的优势与挑战。
|
9天前
|
机器学习/深度学习 缓存 算法
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
|
11天前
|
XML Java 数据格式
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
23 3

推荐镜像

更多