河北住房和城乡建设厅官方网站,wordpress添加视频集,信息服务平台,珠海市住房和城乡建设厅网站文章目录 简介#xff1a;一#xff0c;变量1#xff0c;变量的定义2#xff0c;变量的可变性3#xff0c;变量的隐藏 二、数据类型1#xff0c;标量类型2#xff0c;复合类型 三#xff0c;运算符1#xff0c;算术运算符2#xff0c;比较运算符3#xff0c;逻辑运算… 文章目录 简介一变量1变量的定义2变量的可变性3变量的隐藏 二、数据类型1标量类型2复合类型 三运算符1算术运算符2比较运算符3逻辑运算符4位运算符5赋值运算符 四、控制流1条件语句2循环语句 总结 简介
本章节将详细介绍Rust的基础语法包括变量数据类型运算符以及控制流。每个部分都将提供详细的解释和代码示例以便于理解和学习。 一变量
在编程语言中变量是一种基本的概念它们是用来存储数据的。在Rust中变量的特性和其他语言有所不同。
1变量的定义
在Rust中变量的定义使用let关键字。定义变量的基本格式是let 变量名 变量值;。例如定义一个整数变量x并赋值为5可以写成let x 5;。
let x 5;在这个例子中x就是变量名5就是变量值。注意Rust是一种静态类型语言这意味着在编译时就必须知道所有变量的类型。但是Rust有一个强大的类型推断系统它可以根据变量的值推断出变量的类型。在这个例子中编译器会自动推断出x的类型是i32。
2变量的可变性
在Rust中变量默认是不可变的。这是一种保障数据安全的方式。如果试图改变一个不可变变量的值编译器会报错。
let x 5;
x 6; // 编译错误不能赋值给不可变变量如果需要改变变量的值需要在定义变量时使用mut关键字表示这个变量是可变的。
let mut x 5;
x 6; // 这是合法的在这个例子中x是一个可变变量可以改变它的值。
3变量的隐藏
在Rust中可以定义一个新的变量来隐藏旧的变量。这被称为变量的隐藏。
let x 5;
let x x 1; // 隐藏旧的x定义一个新的x在这个例子中第二个let语句定义了一个新的变量x并隐藏了旧的变量x。新的变量x的值是旧的变量x的值加1。 二、数据类型
Rust是一种静态类型语言这意味着在编译时就必须知道所有变量的类型。Rust的数据类型主要分为两大类标量Scalar和复合Compound。
1标量类型
标量类型代表一个单一的值Rust有四种基本的标量类型整型浮点型布尔型和字符型。
整型 整型是一种数字类型可以是有符号的i8, i16, i32, i64, i128 和 isize或无符号的u8, u16, u32, u64, u128 和 usize。每一个变量后面的数字代表该变量占用的位数。例如i32类型的整数占用32位i64占用64位。isize和usize类型依赖运行程序的计算机架构64位架构上它们是64位的 32位架构上它们是32位的。
let x: i32 5; // 有符号整型
let y: u32 5; // 无符号整型浮点型 Rust的浮点数类型是f32 和 f64分别占32位和64位。默认类型是f64因为在现代CPU中它几乎与f32一样快但精度更高。
let x 2.0; // f64
let y: f32 3.0; // f32布尔型 布尔类型有两个可能的值true 和 false。Rust中布尔类型的大小为一位。
let t true;
let f: bool false; // 显式指定类型字符型 Rust的char类型代表了一个Unicode标量值这意味着它可以比ASCII表表示更多的内容。char类型的大小为四个字节并且用单引号指定。
let c z;
let z ℤ;
let heart_eyed_cat ;2复合类型
复合类型可以将多个值组合成一个类型。Rust有两个原生的复合类型元组tuple和数组array。
元组类型 元组是一个将多个其他类型的值组合进一个复合类型的主要方式。元组长度固定一旦声明其长度不能增大或缩小。
let tup: (i32, f64, u8) (500, 6.4, 1);数组类型 对于每个元素类型相同的情况Rust提供了数组类型。与元组不同数组的长度在编译时就必须是固定的不能动态改变。
let a [1, 2, 3, 4, 5];
let months [January, February, March, April, May, June, July, August, September, October, November, December];三运算符
Rust语言提供了一系列的运算符包括算术运算符比较运算符逻辑运算符位运算符赋值运算符等。这些运算符在编程中起着至关重要的作用用于执行各种计算和逻辑操作。下面将对这些运算符进行详细的介绍并提供相应的代码示例。
1算术运算符
Rust支持基本的算术运算符包括加法(), 减法(-), 乘法(*), 除法(/), 取余(%):
let a 10;
let b 3;let sum a b; // 加法
println!(Sum: {}, sum); // 输出13let difference a - b; // 减法
println!(Difference: {}, difference); // 输出7let product a * b; // 乘法
println!(Product: {}, product); // 输出30let quotient a / b; // 除法
println!(Quotient: {}, quotient); // 输出3let remainder a % b; // 取余
println!(Remainder: {}, remainder); // 输出12比较运算符
比较运算符用于比较两个值包括等于(), 不等于(!), 大于(), 小于(), 大于等于(), 小于等于():
let a 10;
let b 20;println!(a b: {}, a b); // 输出false
println!(a ! b: {}, a ! b); // 输出true
println!(a b: {}, a b); // 输出false
println!(a b: {}, a b); // 输出true
println!(a b: {}, a b); // 输出false
println!(a b: {}, a b); // 输出true3逻辑运算符
逻辑运算符用于组合多个条件包括逻辑与(), 逻辑或(||), 逻辑非(!):
let a true;
let b false;println!(a b: {}, a b); // 输出false
println!(a || b: {}, a || b); // 输出true
println!(!a: {}, !a); // 输出false4位运算符
位运算符用于操作整数的二进制位包括位与(), 位或(|), 位异或(^), 左移(), 右移()
let a 0b_0011_1100; // 60
let b 0b_0000_1101; // 13println!(a b: {}, a b); // 输出12
println!(a | b: {}, a | b); // 输出61
println!(a ^ b: {}, a ^ b); // 输出49
println!(a 2: {}, a 2); // 输出240
println!(a 2: {}, a 2); // 输出155赋值运算符
赋值运算符用于给变量赋值包括等号(), 加等(), 减等(-), 乘等(*), 除等(/), 取余等(%), 位与等(), 位或等(|), 位异或等(^), 左移等(), 右移等()
let mut a 10;a 5; // a a 5
println!(a: {}, a); // 输出15a - 2; // a a - 2
println!(a: {}, a); // 输出13a * 3; // a a * 3
println!(a: {}, a); // 输出39a / 3; // a a / 3
println!(a: {}, a); // 输出13a % 5; // a a % 5
println!(a: {}, a); // 输出3a 2; // a a 2
println!(a: {}, a); // 输出2a | 1; // a a | 1
println!(a: {}, a); // 输出3a ^ 1; // a a ^ 1
println!(a: {}, a); // 输出2a 2; // a a 2
println!(a: {}, a); // 输出8a 1; // a a 1
println!(a: {}, a); // 输出4四、控制流
控制流是编程中的基本概念它决定了代码的执行顺序。在Rust中控制流主要包括条件语句和循环语句。
1条件语句
条件语句是根据特定条件来决定执行哪段代码。在Rust中主要使用if和else关键字来创建条件语句。
if语句 if语句用于测试某个条件是否满足如果满足则执行相应的代码块。以下是一个简单的例子
let number 7;if number 5 {println!(condition was true);
} else {println!(condition was false);
}在这个例子中number 5是一个条件表达式它的结果是一个布尔值。如果这个值为true则执行if后面的代码块否则执行else后面的代码块。
else if语句 else if语句用于测试多个条件。如果if语句的条件不满足那么就会测试else if语句的条件如果else if语句的条件满足就执行相应的代码块否则继续测试下一个else if语句的条件如果所有的else if语句的条件都不满足就执行else后面的代码块。
let number 6;if number % 4 0 {println!(number is divisible by 4);
} else if number % 3 0 {println!(number is divisible by 3);
} else if number % 2 0 {println!(number is divisible by 2);
} else {println!(number is not divisible by 4, 3, or 2);
}2循环语句
循环语句用于重复执行某段代码直到满足特定的条件。在Rust中主要使用loopwhile和for关键字来创建循环语句。
loop语句 loop语句用于创建无限循环也就是说它会一直重复执行相应的代码块直到显式地使用break关键字来退出循环。
let mut counter 0;loop {counter 1;if counter 10 {break;}
}在这个例子中loop语句会一直重复执行直到counter的值等于10然后使用break关键字退出循环。
while语句 while语句用于创建条件循环也就是说它会一直重复执行相应的代码块直到条件表达式的结果为false。
let mut number 3;while number ! 0 {println!({}!, number);number - 1;
}println!(LIFTOFF!!!);在这个例子中while语句会一直重复执行直到number的值等于0然后退出循环。
for语句 for语句用于遍历一个集合的所有元素。在Rust中可以使用for语句和in关键字来遍历一个范围一个迭代器或者一个数组。
let a [10, 20, 30, 40, 50];for element in a.iter() {println!(the value is: {}, element);
}在这个例子中for语句遍历数组a的所有元素并打印每个元素的值。 总结
本章节详细介绍了Rust的基础语法包括变量数据类型运算符以及控制流。理解这些基础知识是学习Rust的重要步骤希望这些内容能帮助理解和掌握Rust的基础语法。