首页 > 编程语言 >Rust编程基础知识

Rust编程基础知识

时间:2022-08-21 12:00:07浏览次数:100  
标签:编程 crate 基础知识 标准 模块 使用 prelude Rust

1.一般Rust源代码的后缀名是使用.rs表示。源码一定要注意使用utf-8编码。

2.代码注释用//,一般用//注释单行,也就是行注释,块注释使用/*和*/包围。

3.fn是一个关键字(key word),函数定义必须以这个关键字开头。函数体使用大括号{}来包含。fn关键字是单词function的缩写。

4.默认情况下,main函数是可执行程序的入口点,它是一个无参数,无返回值的函数。如果我们要定义的函数有参数和返回值,可以使用以下语法:

//参数列表使用逗号分开,冒号后面是类型,返回值类型使用->符号分隔
fn Foo(input1:i32,input2:u32) -> i32 {
    
}

5.局部变量声明使用let关键字开头,用双引号包含起来的部分是字符串常量。Rust是静态强类型语言,所有的变量都有严格的编译期语法检查。

let s = "Hello Rust!";

6.每条语句使用分号结尾。语句块使用大括号。空格、换行和缩进不是语法规则的一部分。

7.标准输出是使用println!宏来完成。println后面的感叹号,它代表这是一个宏,而不是一个函数。可以把它理解为一种安全版的编译期语法扩展,和c/c++中的宏安全不是一个东西。Rust只所以使用宏,而不是函数,是因为标准输出宏可以完成编译期格式检查,更加安全。

 

Prelude

prelude 是 Rust 自动导入每个 Rust 程序的内容的列表。  

  Rust的代码从逻辑上是分crate和mod管理的。所谓的crate可以理解为“项目”。每个crate是一个完整的编译单元,它可以生成一个lib或者exe可执行文件。而在crate内部,则是由mod这个概念管理的,所谓mod可以理解为namespace。我们可以使用use语句把其他模块中的内容引入到当前模块中来。

  Rust有一个极简标准库,叫做std,除了极少数嵌入式系统下无法使用标准库之外,绝大部分情况下,我们都需要用到标准库里面的东西。为了给大家减少麻烦,Rust编译器对标准库有特殊处理。默认情况下,用户不需要手动添加对标准库的依赖,编译器会自动引入对标准库的依赖。除此之外,标准库中的某些type,trait,function,macro等实在是太常用了。每次都写use语句确实非常无聊,因此标准库提供了一个std::prelude模块,在这个模块中导出了一些最常见的类型,trait等东西,编译器会为用户写的每个crate自动插入一句话:

use std::prelude::v1::*;

  这样,标准库里面的这些最重要的类型,trait等名字就可以直接使用,而无须每次都写全称或者use语句。

prelude模块的源码在src/libstd/prelude/文件夹下。我们可以看到,目前的mod.rs中,直接导出了v1模块中的内容,而v1.rs中,则是编译器为我们自动导入的相关trait类型.

标签:编程,crate,基础知识,标准,模块,使用,prelude,Rust
From: https://www.cnblogs.com/hdhx-lh/p/16609739.html

相关文章

  • RUST基础:类型别名
    Rust基础入门书籍推荐《深入浅出RUST》我们可以用type关键字给同一个类型起个别名(typealias)。实例如下:1typeAge=u32;23fngrow(age:Age,year:u32)->Age{......
  • PowerShell教程 - 编程结构(Program Struct)- 第一部分
    更新记录转载请注明出处。2022年8月21日发布。2022年8月18日从笔记迁移到博客。变量(Variables)变量说明Avariablemaybeofany.NETtypeorobjectinstance......
  • PowerShell教程 - 编程结构(Program Struct)- 第三部分
    更新记录转载请注明出处。2022年8月21日发布。2022年8月18日从笔记迁移到博客。预定义变量预定义的布尔值$True$False预定义变量预定义变量 描述(Descrip......
  • PowerShell教程 - 编程结构(Program Struct)- 第五部分
    更新记录转载请注明出处。2022年8月21日发布。2022年8月18日从笔记迁移到博客。枚举类型定义枚举类型(Defininganenumeration)简单的定义enumMyEnum{Zero......
  • PowerShell教程 - 编程结构(Program Struct)- 第四部分
    更新记录转载请注明出处。2022年8月21日发布。2022年8月18日从笔记迁移到博客。分支结构(Branching)if语句(ifStatement)if(条件){ #code}实例:$userInput=R......
  • 我的python基础知识点
    0、使用#注释,因为python是脚本语言批量赋值a,b=1,2 //a=1,b=2批量赋值还可以使用序列进行赋值a,b=[1,2] //a=1,b=21、在python中,"helloworld"*3//表示3个这个字符......
  • C语言指针与函数相关编程实例练习题
    指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。本......
  • 函数式编程-Lambda的延迟执行
    函数式编程在兼顾面向对象特性的基础上,Java语言通过Lambda表达式与方法引用等,为开发者打开函数式编程的大门,下面我们做一个初探Lambda的延迟执行 有些场景的代码执行后......
  • 【热像】热像仪基础知识
    红外热像仪基本知识https://baike.baidu.com/item/热像仪/8551070#reference-[2]-2657998-wrap红外热像仪是一种利用红外热成像技术,通过对标的物的红外辐射探测,并加以......
  • JAVA基础知识和安装
    java基础知识java的类型JAVASE标准版主要用于桌面JAVAME移动版主要用于手机JAVAEE企业版主要用于服务器JDKJREJBMJDKjavaDevelopmentKitJREJavaRuntim......