Rust 基础语法学习笔记
变量和数据类型
变量声明
使用 let
关键字声明变量,语法格式如下:
rustCopy Codelet variable_name: data_type = value;
例如,声明一个整型变量 x
并赋值为 1
:
rustCopy Codelet x: i32 = 1;
数据类型
Rust 提供了以下常用的数据类型:
- 整型:
i8
、i16
、i32
、i64
、i128
、u8
、u16
、u32
、u64
、u128
- 浮点型:
f32
、f64
- 布尔型:
bool
- 字符型:
char
- 字符串型:
&str
、String
例如,声明一个浮点型变量 y
并赋值为 3.14
:
rustCopy Codelet y: f64 = 3.14;
条件语句
if
表达式
if
表达式在 Rust 中的语法格式如下:
rustCopy Codeif condition {
// code to run if the condition is true
} else {
// code to run if the condition is false
}
例如,判断变量 x
是否等于 1
:
rustCopy Codeif x == 1 {
println!("x is equal to 1");
} else {
println!("x is not equal to 1");
}
match
表达式
match
表达式在 Rust 中用于匹配模式,语法格式如下:
rustCopy Codematch value {
pattern => {
// code to run if the value matches the pattern
}
_ => {
// code to run if no pattern matches the value
}
}
例如,根据变量 x
的值打印不同的字符串:
rustCopy Codematch x {
1 => println!("x is one"),
2 => println!("x is two"),
_ => println!("x is neither one nor two"),
}
循环语句
Rust 提供了三种循环语句:loop
、while
和 for
。
loop
循环
loop
循环会一直重复运行代码块,直到显式使用 break
关键字退出循环,语法格式如下:
rustCopy Codeloop {
// code to repeat indefinitely
if condition {
break;
}
}
例如,使用 loop
循环计算 1
到 10
的和:
rustCopy Codelet mut sum = 0;
let mut count = 1;
loop {
sum += count;
count += 1;
if count > 10 {
break;
}
}
println!("The sum is {}", sum);
while
循环
while
循环会在每次运行代码块之前检查条件是否为真,只有条件为真时才会运行代码块,语法格式如下:
rustCopy Codewhile condition {
// code to repeat as long as the condition is true
}
例如,使用 while
循环计算 1
到 10
的和:
rustCopy Codelet mut sum = 0;
let mut count = 1;
while count <= 10 {
sum += count;
count += 1;
}
println!("The sum is {}", sum);
for
循环
for
循环用于迭代一个集合中的所有元素,语法格式如下:
rustCopy Codefor item in collection {
// code to run for each item in the collection
}
例如,使用 for
循环打印数组中的所有元素:
rustCopy Codelet arr = [1, 2, 3, 4, 5];
for element in arr.iter() {
println!("{}", element);
}
函数
Rust 中的函数使用 fn
关键字声明,语法格式如下:
rustCopy Codefn function_name(parameter_name: parameter_type) -> return_type {
// code to run when the function is called
return value;
}
例如,实现一个函数 add
,用于计算两个整数的和:
rustCopy Codefn add(x: i32, y: i32) -> i32 {
return x + y;
}
let result = add(1, 2);
println!("{}", result);
结构体
结构体是 Rust 中用于封装多个相关数据的机制,语法格式如下:
rustCopy Codestruct StructName {
member_name: member_type,
// more members...
}
let struct_instance = StructName {
member_name: value,
// more member initialization...
};
例如,实现一个包含姓名和年龄的结构体 Person
:
rustCopy Codestruct Person {
name: String,
age: i32,
}
let john = Person {
name: String::from("John"),
age: 30,
};
println!("{} is {} years old", john.name, john.age);
枚举
枚举是 Rust 中用于定义有限集合的值的方式,语法格式如下:
rustCopy Codeenum EnumName {
Value1,
Value2,
// more values...
}
let value = EnumName::Value1;
例如,定义一个枚举类型 Color
,包含红、绿和蓝三种颜色:
rustCopy Codeenum Color {
Red,
Green,
Blue,
}
let color = Color::Red;