20260521
· 1 分钟
#Rust
Rust
虽然很忙,还是要再次开始学习 Rust 了,为什么我忘记东西的速度这么快?隔了大概一个月,真是恍如隔世,很多语法直接不认识了,还是要做成笔记,不然真的会全部忘干净的。
//表示从1到5(包含5)
1..=5
//声明五个未赋值的变量
let (a,b,c,d,e);
//a=1,b=2
(a,b) = (1,2);
// ..表示忽略中间的任意多个元素,_ 表示跳过单个元素
// 所以 c=1 , d=4
[c,..,d,_] = [1,2,3,4,5];
//在Rust 1.53+中 可以使用@ 将..忽略的数值整合为引用切片
// 但是不能在无let的语句中使用
// 此时会报错,因为@ 模式只能在允许变量绑定的上下文中使用
[c,e @ .. , d] = [1,2,3,4,5];
//z=1,y=&[2,3,4],z=5
let [x,y @ .. , z] = [1,2,3,4,5];
// @ 还可以在范围匹配中绑定单独的值
let x = 5;
match x {
y @ 1..=5 => println!("y = {}", y), // y = 5
_ => (),
}
汉诺塔
新的汉诺塔 room 完成了,汉诺塔还是比较有意思的,而且比较简单,比 lights out 简单很多,大概是初中难度吧,不在意规则的话就是胎教难度。
我是不是太在意数学了?主要是第一个 lights out 我很喜欢,导致接下来的这些房间全都是根据数学来寻找的,以后应该考虑找一些其他更加有意思的 room。