Rust程序结构与代码注释

【图书介绍】《Rust编程与项目实战》-CSDN博客

《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com)

Rust编程与项目实战_夏天又到了的博客-CSDN博客

3.1 Rust程序结构

我们从一个最简单的程序入手,来观察一个Rust的程序结构。
【例3.1】 第一个Rust例子

在命令行下用命令cargo new myrust新建一个Rust项目。

打开VS Code,打开文件夹myrust,并在VS Code中打开src下的main.rs,然后输入如下 代码:

// my first program in Rust
fn main()
{
    println("Hello, world!");
}

学过C语言的朋友,应该一目了然,这个程序就是打印输出一行字符串"Hello, world!"。

按快捷键Ctrl+F5运行工程,在TERMINAL视图上可以看到运行结果:

Hello World!

以上代码是多数初学者学会写的第一个程序,它的运行结果是在屏幕上打出"Hello World!"这句话。虽然它可能是Rust可写出的最简单的程序之一,但其中已经包含每一个Rust程序的基本组成结构。下面我们就逐个分析其组成结构的每一部分:

// my first program in Rust

这是注释行。所有以两个斜线符号(//)开始的程序行都被认为是注释行,这些注释行是程序员写在程序源代码内,用来对程序进行简单解释或描述,对程序本身的运行不会产生影响。在本例中,这行注释对本程序是什么做了一个简要的描述。

fn main()

这一行为主函数(Main Function)的起始声明。fn是一个关键字,它用来声明新函数。关键字(Keyword)又称保留字,是整个语言范围内预先保留的标识符,用户不能用关键字作为变量名或函数名。

main函数是所有Rust程序运行的起始点。无论它是在源代码文件的开头、结尾还是中间,此函数中的代码总是在程序开始运行时第一个被执行。并且,由于同样的原因,所有Rust程序都必须有一个main函数。

main后面跟了一对圆括号,表示它是一个函数,main是函数名。Rust中所有函数都跟有一对圆括号,圆括号中可以有一些输入参数。main函数后面的花括号之间的内容称为函数体,里面的代码就是函数功能的具体实现,花括号必不可少。

println!("Hello, world!");

这一行用于向控制台打印输出一段字符串。println是一个宏,用于向控制台窗口输出内容,注意println后面紧跟了一个感叹号(!),这也是让人不爽的地方。我们后面还会详述宏println。注意这行代码以分号(;)结尾。分号标示了一个语句的结束,Rust的每一个代码语句都必须以分号结尾。Rust 程序员最常犯的错误之一就是忘记在语句末尾写上分号。

你可能注意到并不是程序中的所有行都会被执行。程序中可以有注释行(以//开头),然后有函数的声明(本例中为main函数),最后是程序语句(例如调用println!),最后这些语句行全部被括在主函数的花括号"{}"内。

本例中程序被写在不同的行中以方便阅读。其实这并不是必需的。本例也可以被写成一行 代码:

fn main() {println!("Hello, world!");}   // my first program in Rust

可以看到,函数名、函数体(花括号中的内容)、注释都写在一行中了,而且最终程序运行结果依旧不变。但我们通常习惯分行写代码,分行写代码更方便让人阅读。

在Rust中,语句之间的分隔是以分号(;)为分隔符的。以下程序包含更多语句:

// my first program in Rust
fn main()
{
    println!("Hello, world!");
    println!("Down with 996!");
}

这段代码将在VS Code终端窗口中输出两行字符串:

Hello, world!

Down with 996!

输出"Hello, world!"和"Down with 996!"。在这个例子中,我们在两个不同的语句中调用了println!两次。再一次说明分行写程序代码只是为了方便阅读,因为这个main函数写成以下形式也没有任何问题:

fn main() {println!("Hello, world!");    println!("Down with 996!");}

为方便起见,也可以把代码分为更多的行来写:

// my first program in Rust
fn main()

{
    println!(

        "Hello, world!"

    );
    println!(
        "Down with 996!");
}

运行结果依旧是两行字符串。

3.2 注 释

注释(Comments)是源代码的一部分,但会被编译器忽略。注释不会生成任何执行代码。使用注释的目的只是使程序员可以在源程序中插入一些说明解释性的内容。

在程序中,Rust 支持两种插入注释的方法:

// line comment
/* block comment */

第一种方法为行注释,告诉编译器忽略从//开始至本行结束的任何内容。第二种为块注释,告诉编译器忽略在/*符号和*/符号之间的所有内容,可能包含多行内容。

在以下程序中,我们插入了更多注释内容。

/* my second program in Rust
with more comments */

fn main()
{
    println!("Hello world!");
    println!("Down with 996!");
}

如果你在源程序中插入了注释而没有用//符号或/*和*/符号,编译器会把它们当成Rust的语句,那么在编译时就会出现一个或多个错误信息。

相关推荐
lsx2024068 分钟前
SQL MID()
开发语言
Dream_Snowar11 分钟前
速通Python 第四节——函数
开发语言·python·算法
西猫雷婶13 分钟前
python学opencv|读取图像(十四)BGR图像和HSV图像通道拆分
开发语言·python·opencv
鸿蒙自习室13 分钟前
鸿蒙UI开发——组件滤镜效果
开发语言·前端·javascript
言、雲21 分钟前
从tryLock()源码来出发,解析Redisson的重试机制和看门狗机制
java·开发语言·数据库
Altair澳汰尔24 分钟前
数据分析和AI丨知识图谱,AI革命中数据集成和模型构建的关键推动者
人工智能·算法·机器学习·数据分析·知识图谱
A懿轩A1 小时前
C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·栈和队列
汪洪墩1 小时前
【Mars3d】设置backgroundImage、map.scene.skyBox、backgroundImage来回切换
开发语言·javascript·python·ecmascript·webgl·cesium
Python机器学习AI1 小时前
分类模型的预测概率解读:3D概率分布可视化的直观呈现
算法·机器学习·分类
云空1 小时前
《QT 5.14.1 搭建 opencv 环境全攻略》
开发语言·qt·opencv