- 使用
if
检查i32
类型的变量是否为正数、负数或零,并打印相应的信息。 - 使用
loop
编写一个无限循环,当循环次数达到10次时,使用break
退出循环。 - 使用
for
循环遍历1
到888
的数字,并只打印出其中的偶数。
- 创建一个函数
take_onwership
,它获取一个String
类型的参数,并打印出来,然后探索函数调用后原变量的状态;创建一个函数borrow_string
,它获取一个对String
的不可变引用,并打印出字符串的长度。 - 分别写出下面程序片断输出结果,并说明原因。
fn main() {
let mut a = 10u32;
let b = &mut a;
*b = 20;
let c = &a;
println!("{b}");
}
fn main() {
let mut a = 10u32;
let b = &mut a;
*b = 20;
let c = &a;
println!("{c}");
}
fn main() {
let mut a = 10u32;
let c = &a;
let b = &mut a;
*b = 20;
println!("{c}");
}
1.假设有一个结构体 Book
,它包含一个对 String
的引用。编写一个带有生命周期注释的结构体,并解释为什么需要生命周期。
2.实现一个返回最长字符串切片的函数
编写一个函数 longest
, 它接受两个字符的引用,并返回最长的字符串的引用。尝试调用 longest
函数,并处理可能出现的生命周期问题。
- 请定义一个
Person
结构体,它应该包括姓名、年龄和城市
等字段。然后编写一个关联函数new
,用于根据给定的参数创建Person
实例。 - 为
Person
结构体实现一个方法introduce
,该方法的作用是打印出一个介绍个人信息的语句。应能够清晰地表达出这个人的姓名、年龄和所在的城市。
定义一个名为 TrafficLight
的枚举,它应该包含红灯、黄灯、绿灯这三种状态。然后为TrafficLight
枚举实现一个方法 duration
,该方法返回每种灯持续的时间(以秒为单位)。最后,使用 match
表达式来处理TrafficLight
实例,根据不同的灯显示相应的行动指示。