我们的第一个Rust程序

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
函数计算FC,每月15万CU 3个月
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Rust语言学习者,通常都会有其它语言的背景,很少有人从零入门Rust。Rust语言应该有一门适合初学者的教程,来帮助大家使用Rust作为入门语言,我非常希望有人能使用原汁原味Rust的思维在计算机世界攻城略地。

Rust语言学习者,通常都会有其它语言的背景,很少有人从零入门Rust。

Rust语言应该有一门适合初学者的教程,来帮助大家使用Rust作为入门语言,我非常希望有人能使用原汁原味Rust的思维在计算机世界攻城略地。这并不说学完这门语言就可以懈怠了,如果没有《操作系统》和《组成原理》等知识的加持根本无法自如运用Rust。例如,标准库中的线程API就是对系统调用的直接封装,因此学习这些知识有利于提高Rust技术水平。假如你在操作系统之上做应用开发,必定需要对操作系统实现与系统调用有所了解。

我们这门课程假设学习者没有编程知识。那么我们需要介绍一些极为基础的内容,如果你已经非常熟悉,可以快速略过。

我们继续使用上节课创建的oskwgbin来讲解。

程序的基本结构

这一节,我们详细讲解main.rs文件中写的代码:

fn main() {
   
   
    println!("Hello World!");
}

这段代码功能是将Hello World打印出来。

这是一个固定的模式,我们创建一个源文件,在文件中编写如下代码:

fn main() {
   
   

}

这个框架内部就是我们编写代码的地方,后续介绍到函数,我们会详细介绍它,这里你先记住即可。

标识符

函数名以及后续将学到的变量名、结构体等各种自定义的名字都叫标识符,遵循标识符的命名规则。

  • 首字母:必须是字母(a-z、A-Z)、下划线(_)或美元符号($)。- 不能是数字。
  • 后续字符:可以是字母、数字、下划线、美元符号、撇号(')或非空格的 Unicode 字符。不能包含空格或控制字符。
  • Rust 标识符是大小写敏感的。
  • 不能使用 Rust 关键字作为标识符。
    举例:
    合法的标识符:_variable、my_function、camelCase、UPPER_CASE、snake_case
    不合法的标识符:1variable、$function、#hashtag、空格 、'string'

关键字

Rust 关键字是用于定义语法规则和限制名称空间中的标识符的特殊标识符。包含已经使用的关键字和保留关键字。例如这里的fn就是要定义一个函数。所有关键字: https://doc.rust-lang.org/std/index.html#keywords

接下来看函数内部,Rust与其他语言不同,它的输出语句用的println!是一个宏,作用是将括号中的内容打印出来,双引号中的内容叫字符串,字符串我们后面课程再介绍。最后有一个;,表示这一句代码结束。就像我们写文章,每句话结束都加句号一样。

println!("Hello World!");

比如下面的代码,我们就可以实现先打印Hello World!,再打印跟程序饲养员学🦀编程到控制台。

fn main() {
   
   
    println!("Hello World!");
    println!("跟程序饲养员学🦀编程");
}

运行效果如下:

image.png

如果代码缺失分号,那么编译器会认为第一句代码没有结束,也就出现了语法错误,编译器会尽可能的提示出错的地方。

image.png

image.png

RustRover会给出快速修复的办法。

程序员最讨厌的有两件事,自己写代码要写注释看别人代码时没注释。可见注释是让我们程序员又爱又恨的存在。

注释和文档

注释会被编译器忽略,所以说注释仅用于帮助其它开发者理解代码的功能和逻辑,要言简意赅的描述清楚代码的功能,复杂的算法上还需要举例说明,如果注释在方法上则需要说明入参和返回的作用等等。

Rust中有下面三类注释:

  1. 单行注释
  2. 多行注释
  3. 文档注释

单行注释//

// 程序入口函数
fn main() {
   
   
    // 打印HelloWorld
    println!("Hello, world!");
}

多行注释 /* */

/*
我
是
程
序
饲
养
员
程序入口函数
无参数
无返回值
 */
fn main() {
   
   
    println!("Hello, world!");
}

文档注释

文档注释有两种形式,使用三斜线///和使用/** 注释内容 */包裹。在执行cargo doc指定时,会解析成web文档的格式,方便调用者阅读。现在见到这种能够认即可,后续课程会介绍文档的编写格式,以及阅读文档等方面的内容。

总结

本节课介绍了程序的基本结构,以及标识符和关键字,并且在IDE中运行了我们编写的程序。同时介绍了两种注释,一种是单行注释,另一种是多行注释。注释会被编译器忽略,同时避免使用过多的注释,以免影响代码的可读性。

相关文章
|
2月前
|
Rust 安全 Linux
Rust-01 Hello Rust 10分钟上手编写第一个Rust程序 背景介绍 发展历史 环境配置 升级打怪的必经之路
Rust-01 Hello Rust 10分钟上手编写第一个Rust程序 背景介绍 发展历史 环境配置 升级打怪的必经之路
53 0
Rust-01 Hello Rust 10分钟上手编写第一个Rust程序 背景介绍 发展历史 环境配置 升级打怪的必经之路
|
4月前
|
Rust 并行计算 安全
揭秘Rust并发奇技!线程与消息传递背后的秘密,让程序性能飙升的终极奥义!
【8月更文挑战第31天】Rust 以其安全性和高性能著称,其并发模型在现代软件开发中至关重要。通过 `std::thread` 模块,Rust 支持高效的线程管理和数据共享,同时确保内存和线程安全。本文探讨 Rust 的线程与消息传递机制,并通过示例代码展示其应用。例如,使用 `Mutex` 实现线程同步,通过通道(channel)实现线程间安全通信。Rust 的并发模型结合了线程和消息传递的优势,确保了高效且安全的并行执行,适用于高性能和高并发场景。
77 0
|
4月前
|
开发框架 Android开发 iOS开发
跨平台开发的双重奏:Xamarin在不同规模项目中的实战表现与成功故事解析
【8月更文挑战第31天】在移动应用开发领域,选择合适的开发框架至关重要。Xamarin作为一款基于.NET的跨平台解决方案,凭借其独特的代码共享和快速迭代能力,赢得了广泛青睐。本文通过两个案例对比展示Xamarin的优势:一是初创公司利用Xamarin.Forms快速开发出适用于Android和iOS的应用;二是大型企业借助Xamarin实现高性能的原生应用体验及稳定的后端支持。无论是资源有限的小型企业还是需求复杂的大公司,Xamarin均能提供高效灵活的解决方案,彰显其在跨平台开发领域的强大实力。
54 0
|
5月前
|
Rust 程序员 开发者
使用 Rust 开发一款类似于 GitBook 的程序
**Rust新手开发者分享开源项目 Typikon**:模仿MDBook,致力于简单Markdown到在线书的渲染。[GitHub](https://github.com/auula/typikon)上可找到源码,欢迎初学者一同学习与贡献。体验轻松构建静态网站,探索Rust之旅。🌟 加入讨论,共建更易用的GitBook替代品。在线文档见[https://typikonbook.github.io](https://typikonbook.github.io)。
43 1
|
6月前
|
Rust 安全 开发者
Rust语言的Hello, World! 程序解析
Rust语言的Hello, World! 程序解析
|
Rust JavaScript 前端开发
将 Rust 程序编译为 WebAssembly 的知识与实践
本文记叙如何将一个 Rust 语言编译成可执行的 WebAssembly 文件。
236 0
|
7月前
|
Rust JavaScript 前端开发
将 Rust 程序编译为 WebAssembly
将 Rust 程序编译为 WebAssembly
266 0
|
Rust
使用cargo创建rust程序并运行
使用cargo创建rust程序并运行
70 0
|
Rust 前端开发 安全
通过跨端程序tauri,来简单入门一下rust
Tauri 是一个跨平台 GUI 框架,与 Electron 的思想基本类似。Tauri 的前端实现也是基于 Web 系列语言,Tauri 的后端使用 Rust。Tauri 可以创建体积更小、运行更快、更加安全的跨平台桌面应用。
1532 0
|
Rust 供应链 安全
QCon 2022·上海站 | 学习笔记2: Rust 程序可靠性保证相关技术探索与实践
QCon 2022·上海站 | 学习笔记2: Rust 程序可靠性保证相关技术探索与实践
231 0
下一篇
DataWorks