news 2026/6/15 14:56:53

【Rust开发】Rust基础语法详细解析,助力你快速通关Rust

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Rust开发】Rust基础语法详细解析,助力你快速通关Rust

Rust基础语法解析

变量与可变性

Rust中变量默认不可变,使用let声明。可变变量需添加mut关键字:

let x = 5; // 不可变 let mut y = 10; // 可变 y = 15; // 允许修改

常量使用const声明,必须标注类型:

const MAX_POINTS: u32 = 100_000;
数据类型

基本类型包括标量(整型、浮点、布尔、字符)和复合类型(元组、数组):

let tup: (i32, f64, u8) = (500, 6.4, 1); let arr = [1, 2, 3]; // 固定长度数组
函数

使用fn定义函数,参数需注明类型:

fn add(a: i32, b: i32) -> i32 { a + b // 无分号表示返回值 }
控制流

if表达式:

let number = if condition { 5 } else { 6 };

循环(loop/while/for):

for element in arr.iter() { println!("{}", element); }
所有权系统

Rust核心特性,规则包括:

  • 每个值有唯一所有者
  • 值离开作用域时自动释放
  • 所有权可通过let y = x转移(移动语义)

引用允许借用值而不获取所有权:

let s1 = String::from("hello"); let len = calculate_length(&s1); // 不可变引用
结构体

定义和使用结构体:

struct User { username: String, email: String, } let user = User { email: String::from("user@example.com"), username: String::from("user123"), };
枚举与模式匹配

枚举定义:

enum Message { Quit, Move { x: i32, y: i32 }, }

模式匹配:

match msg { Message::Quit => println!("Quit"), Message::Move { x, y } => println!("Move to ({}, {})", x, y), }
错误处理

Result类型处理可恢复错误:

let f = File::open("file.txt"); match f { Ok(file) => file, Err(error) => panic!("Problem opening the file: {:?}", error), }
模块系统

使用mod组织代码:

mod front_of_house { pub mod hosting { pub fn add_to_waitlist() {} } } use crate::front_of_house::hosting; hosting::add_to_waitlist();
生命周期

确保引用有效性的标注:

fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { if x.len() > y.len() { x } else { y } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 17:23:12

普通本科转行网络安全5年,现在月薪2W+,劝你想清楚!

【收藏级】网络安全自学指南&#xff1a;零基础到实战的完整路径&#xff0c;少走弯路必备 这是一位有五年网络安全经验的从业者分享的入门指南。作者强调行业缺的是能解决问题的人&#xff0c;而非只会背理论的人。文章从零基础到进阶&#xff0c;推荐了多个学习资源&#xf…

作者头像 李华
网站建设 2026/6/12 12:29:58

产品需求池管理工具实践指南:从需求汇聚到落地闭环的全维度管控

在产品研发全生命周期中&#xff0c;需求管理是产品工作的起点与核心&#xff0c;而产品需求池则是所有需求的“统一入口”与“管理中枢”。从客户反馈、业务诉求到用户建议、内部创意&#xff0c;各类需求杂乱分散的问题&#xff0c;往往导致需求遗漏、优先级混乱、落地无追踪…

作者头像 李华
网站建设 2026/6/10 1:22:10

西门子1200伺服步进FB块程序揭秘

西门子1200伺服步进FB块程序 &#xff0c;一共两个FB&#xff0c;一个是scl写的&#xff0c;一个是梯形图&#xff0c;可以多轴多次调用&#xff0c;中文注释详细&#xff0c;真实可用&#xff0c;经过在专用设备真实调试运行&#xff0c;可以直接应用到实际项目中&#xff0c;…

作者头像 李华
网站建设 2026/6/15 13:35:24

欧姆龙 CJ/CP 程序在全自动 CE 锂电池贴胶检测机中的应用

omron欧姆龙CJ/CP程序 欧姆龙CP1H-XA&#xff0c;主机搭载CIF串口模块与从机PC LINK通信控制&#xff0c; 全自动CE锂电池贴胶检测机&#xff0c;主从站进行轴控制&#xff0c;涵盖人机配方一键换型功能&#xff0c;故障记录功能&#xff0c;产量统计及OEE功能&#xff0c;优质…

作者头像 李华
网站建设 2026/6/13 13:57:59

产业指挥棒下的重塑:职业教育政策解读与应对策略

> 一张专业清单、一份拨款系数表&#xff0c;正悄然重塑中国职业教育的基因&#xff0c;从“我能教什么”到“产业需要什么”的时代已经到来。--- 近两年&#xff0c;教育部及各地密集出台一系列职业教育新政&#xff0c;从专业设置到资金分配&#xff0c;从培养模式到评价体…

作者头像 李华
网站建设 2026/6/15 14:15:17

异构网络垂直切换算法MATLAB仿真实现

一、仿真框架设计 基于多属性决策判决算法实现异构网络垂直切换&#xff0c;支持TD-SCDMA/LTE/WiFi等网络类型&#xff0c;包含以下核心模块&#xff1a; 网络拓扑建模&#xff1a;定义基站位置、覆盖范围及用户移动路径 信号强度计算&#xff1a;基于距离衰减模型计算接收功…

作者头像 李华