Rust 基础语法讲解

Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。

变量,基本类型,函数,注释和控制流,这些几乎是每种编程语言都具有的编程概念。 这些基础概念将存在于每个 Rust 程序中,及早学习它们将使你以最快的速度学习 Rust 的使用。

变量

首先必须说明,Rust 是强类型语言,但具有自动判断变量类型的能力。这很容易让人与弱类型语言产生混淆。

如果要声明变量,需要使用 let 关键字。例如:

let a = 123;

只学习过 JavaScript 的开发者对这句话很敏感,只学习过 C 语言的开发者对这句话很不理解。

在这句声明语句之后,以下三行代码都是被禁止的:

a = "abc";
a = 4.56;
a = 456;

第一行的错误在于当声明 a 是 123 以后,a 就被确定为整型数字,不能把字符串类型的值赋给它。

第二行的错误在于自动转换数字精度有损失,Rust 语言不允许精度有损失的自动数据类型转换。

第三行的错误在于 a 不是个可变变量。

前两种错误很容易理解,但第三个是什么意思?难道 a 不是个变量吗?

这就牵扯到了 Rust 语言为了高并发安全而做的设计:在语言层面尽量少的让变量的值可以改变。所以 a 的值不可变。但这不意味着 a 不是”变量”(英文中的 variable),官方文档称 a 这种变量为”不可变变量”。

如果我们编写的程序的一部分在假设值永远不会改变的情况下运行,而我们代码的另一部分在改变该值,那么代码的第一部分可能就不会按照设计的意图去运转。由于这种原因造成的错误很难在事后找到。这是 Rust 语言设计这种机制的原因。

当然,使变量变得”可变”(mutable)只需一个 mut 关键字。

let mut a = 123;
a = 456;

这个程序是正确的。

常量与不可变变量的区别

既然不可变变量是不可变的,那不就是常量吗?为什么叫变量?

变量和常量还是有区别的。在 Rust 中,以下程序是合法的:

let a = 123;
let a = 456;

但是如果 a 是常量就不合法:

const a: i32 = 123;
let a = 456;

变量的值可以”重新绑定”,但在”重新绑定”以前不能私自被改变,这样可以确保在每一次”绑定”之后的区域里编译器可以充分的推理程序逻辑。 虽然 Rust 有自动判断类型的功能,但有些情况下声明类型更加方便:

let a: u64 = 123;

这里声明了 a 为无符号 64 位整型变量,如果没有声明类型,a 将自动被判断为有符号 32 位整型变量,这对于 a 的取值范围有很大的影响。

重影(Shadowing)

重影的概念与其他面向对象语言里的”重写”(Override)或”重载”(Overload)是不一样的。重影就是刚才讲述的所谓”重新绑定”,之所以加引号就是为了在没有介绍这个概念的时候代替一下概念。

重影就是指变量的名称可以被重新使用的机制:

实例

fn main() {
   let x = 5;
   let x = x + 1;
   let x = x * 2;
   println!("The value of x is: {}", x);
}

这段程序的运行结果:

The value of x is: 12

重影与可变变量的赋值不是一个概念,重影是指用同一个名字重新代表另一个变量实体,其类型、可变属性和值都可以变化。但可变变量赋值仅能发生值的变化。

let mut s = "123";
s = s.len();

这段程序会出错:不能给字符串变量赋整型值。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/221570.html<

(0)
管理的头像管理
上一篇2025-04-15 02:29
下一篇 2025-04-15 02:31

相关推荐

  • 直播大带宽服务器选哪家不卡不掉线,怎么选

    直播不卡不掉线的核心在于服务器提供商的骨干网络质量、资源冗余以及合规资质,近年来,选择像简米科技(2003年始创,23年行业沉淀,持牌自营机房)和酷番云(工信部一类牌照,双认证,1000万注册资本)这类具备完整资质和自建网络的厂商,能显著降低直播故障率,直播卡顿掉线的常见原因分析直播过程中出现的卡顿和掉线,根源……

    2026-07-28
    0
  • 企业级服务器选什么品牌不容易出问题,有哪些推荐?

    企业级服务器选型,核心原则是选择经过大规模市场验证的硬件品牌,并搭配资质齐全、运维规范的IDC服务商,这样能最大程度降低故障率,企业级服务器选型的前置思考业务需求决定硬件方向企业级服务器选型,第一步不是看参数,而是梳理业务场景,数据库、虚拟化、高并发Web、边缘计算,对CPU、内存、I/O和扩展性的要求完全不同……

    2026-07-28
    0
  • 自建机房和租用IDC服务器哪个更划算,怎么选?

    对于绝大多数中小企业,租用IDC服务器比自建机房更划算,前期的资金投入和后期的运维成本都能控制在更低水平,且灵活性和可靠性更高,自建机房听上去“自主可控”,但现实中往往变成“自主看管”,一套完整的机房基础设施,从选址装修到电力空调,再到安防消防,每一项都需要实打实的资金和时间,而租用IDC服务器,本质上是在购买……

    2026-07-28
    0
  • 站群服务器选Linux还是Windows系统好?,怎么选?

    对于站群服务器,Linux系统在资源占用、安全性和长期稳定性上表现更优,是绝大多数站群项目的首选,但若程序强制依赖Windows环境,则需在优化和运维上多下功夫,Linux与Windows系统底层差异对站群的影响资源占用与稳定性Linux内核设计轻量,在同样硬件配置下能支持更多并发连接,处理更多站点,Windo……

    2026-07-28
    0
  • 国内BGP服务器和单线服务器哪个好,哪个更稳定?

    对于大多数面向全国用户的业务,BGP服务器是更优选择,单线服务器更适合预算有限或用户群体高度集中的场景,一张图看懂BGP和单线服务器的核心差异两者背后的技术逻辑决定了完全不同的网络表现,BGP服务器通过动态路由协议同时接入电信、联通、移动等主流运营商,用户访问时自动选择最优路径,本质上是“多线融合”,单线服务器……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注