当前位置: 首页 > article >正文

Rust语言有哪些常用语句?

1. 变量声明与赋值语句

在 Rust 中,使用let关键字来声明变量。例如:

let x = 5;

声明了一个名为x的变量,并将其初始化为5。变量默认是不可变的,这意味着一旦赋值后,不能再重新赋值,除非使用mut关键字来声明可变变量,如

let mut y = 10; 
y = 20;

2. 函数定义与调用语句

函数使用fn关键字来定义。例如:

fn add_numbers(a: i32, b: i32) -> i32 {
    a + b
}

这个函数名为add_numbers,接受两个i32类型的参数a和b,并返回它们的和。函数体中的最后一个表达式(这里是a + b)就是函数的返回值。调用函数的方式是使用函数名和参数列表,如

let result = add_numbers(3, 4);

3. 控制流语句 - if - else 语句

if - else语句用于条件判断。例如:

let num = 7;
if num % 2 == 0 {
    println!("偶数");
} else {
    println!("奇数");
}

首先判断num是否能被2整除,如果能(num % 2 == 0为真),则打印 “偶数”,否则打印 “奇数”。if语句还可以有多个else if分支来处理更多的条件情况。

4. 控制流语句 - match 语句

match语句是一种强大的模式匹配工具。例如,判断一个Option类型的值(Option是 Rust 中用于表示可能有值或可能无值的类型):

let some_value: Option<i32> = Some(5);
match some_value {
    Some(x) => println!("有值,值为 {}", x),
    None => println!("无值"),
}

当some_value是Some类型时,会将其中的值绑定到x并打印;如果是None,则打印 “无值”。match语句还可以用于枚举类型等多种复杂的类型匹配。

5. 循环语句 - for 循环

for循环用于遍历一个集合。例如,遍历一个数组:

let numbers = [1, 2, 3, 4, 5];
for number in numbers.iter() {
    println!("{}", number);
}

这里numbers.iter()返回一个迭代器,for循环每次从迭代器中取出一个元素并赋值给number,然后打印出来。for循环也可以用于遍历其他可迭代的类型,如Vec(动态数组)等。

6. 循环语句 - while 循环

while循环会在条件为真时持续执行。例如:

let mut count = 0;
while count < 5 {
    println!("计数: {}", count);
    count += 1;
}

只要count小于5,就会执行循环体,每次循环都会打印当前的count值,并将count加1。

7. 模块导入与使用语句

在 Rust 中,使用use关键字来导入模块。例如,要使用标准库中的HashMap类型,需要这样导入:

use std::collections::HashMap;

然后就可以在代码中使用HashMap来创建哈希表等操作,如

let mut map: HashMap<&str, i32> = HashMap::new();

http://www.kler.cn/a/377395.html

相关文章:

  • Android camera2
  • 理解 TypeScript 枚举及其最佳实践
  • Pod安装软件将CDN改为国内的镜像
  • java.io.FileNotFoundException: Could not locate Hadoop executable: (详细解决方案)
  • mqsql 场景函数整理
  • 华为OD机试 - 无重复字符的元素长度乘积的最大值(Python/JS/C/C++ 2024 C卷 100分)
  • m6A-BERT——基于 BERT 的模型可用于预测具有遗传信息的 MRNA 的功能
  • 速通一些常见的神经网络
  • MYSQL-查看数据表拥有的索引语法(二十二)
  • [RoarCTF 2019]Easy Calc 1
  • 蓝桥杯介绍
  • GaussDB Ustore存储引擎解读
  • 基于卷积神经网络的柑桔病害识别与防治系统,resnet50,mobilenet模型【pytorch框架+python源码】
  • Qt/C++地图动态绘制折线多边形矩形圆形标注点/可编辑拖动调整大小和位置
  • 【复盘笔记】25国考一期_套题5
  • 5G无线帧基本架构
  • Chromium 中监听browser 添加/删除等事件c++
  • Pnetlab免登录方式
  • 「Mac畅玩鸿蒙与硬件15」鸿蒙UI组件篇5 - Slider 和 Progress 组件
  • 基于BP神经网络的手写体数字图像识别
  • 【MacOS实操】如何基于SSH连接远程linux服务器
  • 【路径——Dijkstra】
  • Decision Tree Regressor (决策树) --- 论文实战
  • Apache Calcite - 查询优化之自定义优化规则
  • 用Python设置、更新和获取Excel单元格的值
  • 智能医疗文档处理:开源OCR系统解析