Rust语言入门:理解基础语法

news2024/9/22 0:57:54

大家好,我是[lincyang]。

今天,我们将深入了解Rust编程语言的基础语法,为你打下坚实的Rust编程基础。

Rust简介

Rust是一种系统编程语言,它注重内存安全、并发性和实用性。Rust的设计哲学是提供安全性,而不损失性能。它是一种静态类型语言,具有强大的类型推断能力。

Hello, World!

我们将从传统的“Hello, World!”程序开始,看看Rust的基础语法。

fn main() {

println!("Hello, World!");

}

这是一个完整的Rust程序。让我们逐行解释它:

  1. fn main():这是Rust程序的入口点,fn是函数的关键字,main是函数的名称。
  2. {}:这是函数体,包含了程序的主要逻辑。
  3. println!("Hello, World!");:这是一个宏,用于在控制台输出文本。println!的!表示它是一个宏而不是函数。

注释

在Rust中,注释有两种方式:单行注释和多行注释。

单行注释使用//:

// 这是一个单行注释

多行注释使用/* */:

/*

这是

一个多行

注释

*/

变量和可变性

在Rust中,默认情况下,所有变量都是不可变的。要创建可变变量,需要使用mut关键字。

let x = 5; // 不可变变量

let mut y = 10; // 可变变量

数据类型

Rust有两类基本数据类型:标量(Scalar)和复合(Compound)。

标量类型

  1. 整数:i8、i16、i32、i64、i128、u8、u16、u32、u64、u128。
  2. 浮点数:f32、f64。
  3. 布尔值:bool。
  4. 字符:char。

复合类型

  1. 元组(Tuple):可以包含多个不同类型的值,用于组织数据。
  2. 数组(Array):包含相同类型的固定大小元素。

let tuple: (i32, f64, char) = (42, 3.14, 'A');

let array: [i32; 3] = [1, 2, 3];

控制流

Rust支持常见的控制流结构,包括条件表达式、循环和匹配模式。

条件表达式

let x = 5;

if x > 0 {

println!("x 是正数");

} else if x < 0 {

println!("x 是负数");

} else {

println!("x 是零");

}

循环

Rust有三种主要的循环:loop、while和for。

let mut i = 0;

while i < 5 {

println!("i 的值是:{}", i);

i += 1;

}

for j in 0..5 {

println!("j 的值是:{}", j);

}

匹配模式

let num = 3;

match num {

1 => println!("是一"),

2 => println!("是二"),

3 => println!("是三"),

_ => println!("是其他数字"),

}

结语

在这篇文章中,我们学习了Rust的基础语法,包括变量、数据类型、控制流等重要概念。Rust的语法设计注重安全性和性能,它的类型系统和所有权模型为编写高性能和安全的代码提供了强大的工具。

接下来,我们将深入探讨更多Rust的主题,包括所有权、借用、生命周期等。记得关注我的微信技术公众号,我将持续为大家带来更多有关Rust的技术干货和实践经验,一起探索这个令人兴奋的编程语言!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1202510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是智能井盖?万宾科技的智能井盖传感器的效果

近年来为打造智慧城市政府一直在不懈努力。加速城市基础建设是一项重要的举措&#xff0c;它有助于推动城市综合治理城市生命线的建设工程。在改善市民生活质量的过程中&#xff0c;市政部门正积极进行井盖的改进和升级工作&#xff0c;特别是那些看似微不足道的井盖却蕴含着重…

一篇文章搞明白js运行机制——事件循环

1、解释 JavaScript 的执行机制。 JavaScript 的执行机制基于事件循环。事件循环包括一个任务队列&#xff08;Task Queue&#xff09;和一个微任务队列&#xff08;Microtask Queue&#xff09;。当一个函数被调用时&#xff0c;它被添加到微任务队列中。事件循环每次迭代都会…

分布式数据库Schema 变更 in F1 TiDB

分布式数据库Schema 变更 in F1 & TiDB 【转载】TiDB 源码阅读系列文章&#xff08;十七&#xff09;DDL 源码解析 | PingCAP 上述文章主要叙述了从DDL语句发起到执行的过程&#xff0c;简单介绍了弄一套相同的模式来后台处理数据回填&#xff0c;从而提高DDL的并发度的一…

Excel函数-将A1中的字符串剔除B1中的字符串

比如A2中是类型单位&#xff0c;B2中是单位&#xff0c;在C2中体现A2-B2的结果&#xff0c;即大米 公式&#xff1a;SUBSTITUTE(A2,B2,“”) SUBSTITUTE函数功能&#xff1a;将字符串中的部分字符用新字符替换&#xff0c;替换序号忽略说明进行全部替换 结构&#xff1a;SUB…

如何加密RAR压缩文件?

如何使用WinRAR加密压缩包&#xff1f;详细介绍WinRAR中的三种加密方法给大家。 方法一&#xff1a;加密 最简单的加密方法&#xff0c;就是在加密文件时输入想要设置的密码&#xff0c;完成加密和压缩了。 方法二&#xff1a;自动加密 普通的加密方式&#xff0c;需要我们加…

NC65 客户、供应商、人员等基本信息校验唯一性规则的设置

NC65 客户、供应商、人员等基本信息校验唯一性规则的设置 供应商名称唯一校验&#xff0c;很容易导致重名的无法保存&#xff0c;那如何设置得如下图提示的按名称基本分类纳税人登记号等校验规则呢&#xff1f; 答&#xff1a;使用 admin 账号登录&#xff0c;然后在基础数据…

基于《环境影响评价技术导则大气环境(HJ 2.2-2018)》的AERMOD模型配置方法

数值模式模拟是分析大气污染物时空分布和成分贡献的重要工具&#xff0c;利用模拟结果可以分析大气污染的来源、成因、污染程度、持续时间、主要成分、相对贡献等问题&#xff0c;有助于分析并合理控制污染源排放&#xff0c;为产业调整提供参考。当前&#xff0c;针对不同理论…

51单片机应用从零开始(二)

目录 1. 什么是单片机系统 1.1 单片机本身 1.2 构成单片机系统——单片机外围器件 2. 如何控制一个发光二极管 2.1 硬件设计&#xff08;系统电路图 &#xff09; 2.2 硬件设计&#xff08;搭建硬件电路的器材 &#xff09; 2.3 软件设计&#xff08;中文描述的程…

JAVA基础:子父类关系里的实例创建流程

实验类&#xff1a; &#x1f4ce;A.javahttps://www.yuque.com/attachments/yuque/0/2023/java/21609500/1699858993581-1df32da6-8360-4a98-aa1b-d9a59d3b2d76.java &#x1f4ce;B.javahttps://www.yuque.com/attachments/yuque/0/2023/java/21609500/1699858998289-d9e31…

做职业规划,离不开职业兴趣和职业性格测评

每天上班&#xff0c;但是没有动力&#xff0c;职业很迷茫是典型的症状&#xff0c;如果这个症状持续超过2周&#xff0c;那么这个问题就值得思考了。比如昨天就遇到过一个朋友说&#xff0c;希望自己能早点改变这个现状..... 有这个想法是非常正确的&#xff0c;职业规划越早…

RK3568驱动指南|第七期-设备树-第65章 设备树下platform_device和platform_driver匹配实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

深入探讨跨境电商商城源码的多语言、多货币、多商户入驻支持“

随着全球电子商务的飞速发展&#xff0c;跨境电商已成为一股不可忽视的力量。在这个背景下&#xff0c;为跨境电商商城源码提供多语言、多货币、多商户入驻支持显得尤为重要。本文将深入探讨这三大特性的实现方式及其对跨境电商发展的影响。 一、多语言支持 对于跨境电商来说&a…

Outlook如何删除邮箱账户

Outlook如何删除邮箱账户 说明&#xff1a; 最近有用户询问到“我的Outlook登陆了很多个邮箱账号&#xff0c;不知道怎么退出”接下来将具体操作步骤加以说明 操作指引&#xff1a; 1、首先打开Outlook该软件&#xff0c;然后点击“文件” 2、点击账户设置下拉菜单 3、在下拉…

SSM德庆县乡村教育图书管理系统-计算机毕设 附源码 24668

SSM德庆县乡村教育图书管理系统 摘 要 大数据时代下&#xff0c;数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求&#xff0c;利用互联网服务于其他行业&#xff0c;促进生产&#xff0c;已经是成为一种势不可挡的趋势。在德庆县乡村教育图书管理的要求下&…

海思平台awb标定

文章目录 1、raw图采集2、awb标定3、标定效果优化1、raw图采集 raw图采集标准: 如果raw是12bit,即raw12,那么Block9 块的亮度就是40960.8 = 3276.8左右。 勾上Dump Raw,我这里raw10,即Depth为10bit,那么Block19的亮度应该为10240.8 = 819.2左右,调整曝光Exposure Attr…

制造业工厂MES系统中的设备管理模块

随时工厂数字化建设的大力推进&#xff0c;设备管理的效率得到了很大的提升&#xff0c;特别是作为机加工企业&#xff0c;设备是整个企业非常重要的核心资产。下面是万界星空科技MES系统中的设备管理模块介绍&#xff1a; 1、MES设备管理任务模型 制造企业总是期望设备能够在…

LED显示屏老化知识

LED显示屏老化是指长时间使用后&#xff0c;LED显示屏性能逐渐下降和衰减的过程。虽然LED显示屏具有较长的寿命和良好的稳定性&#xff0c;但长期使用和环境因素会导致一定程度的老化现象。 LED显示屏为什么会老化 1. 亮度衰减&#xff1a;LED显示屏使用时间越长&#xff0c;LE…

消失的它:摆脱 SwiftUI 中“嵌入视图数量不能超过 10 个”限制的秘密

概览 SwiftUI 带来了描述性界面布局的新玩法&#xff0c;让我们可以超轻松的创建复杂应用界面。但是在早期 SwiftUI 中有一个“著名”的限制大家知道么&#xff1f;那就是 ViewBuilder 中嵌入子视图数量不能超过 10 个&#xff01; 不过&#xff0c;从 Swift 5.9 开始这一“桎…

PHP判断扫码支付扫码条码支付宝微信区分

微信&#xff1a;用户付款码规则&#xff1a;18位纯数字&#xff0c;前缀以10、11、12、13、14、15开头 支付宝&#xff1a;25~30开头的长度为16~24位的数字&#xff0c;实际字符串长度以开发者获取的付款码长度为准 <?php /*** 判断扫码支付的方式* param string $code 扫…

前后端分离项目为什么很火?有什么优势?

目录 一、什么是前后端分离 二、前后端分离项目的技术栈 三、前后端分离项目有什么优势 一、什么是前后端分离 前后端分离是一种软件架构的设计模式,它将应用程序的前端&#xff08;即用户界面&#xff09;和后端&#xff08;即服务器端&#xff09;进行解耦,使得它们可以独…