如果用户希望匹配一个切片或数组,用户可以使用 &
来修饰 slice_patterns
功能。
#![feature(slice_patterns)]
fn main() {
let v = vec!["match_this", "1"];
match &v[..] {
["match_this", second] => println!("The second element is {}", second),
_ => {},
}
}
advanced_slice_pattern
使用户可以使用 ..
来表示切片匹配模式内部的元素任何数目。此通配符仅能为给定的数组使用一次。如果在 ..
前有个标识符,切片的结果将会绑定到这个名字。比如:
`#![feature(advanced_slice_patterns, slice_patterns)]
fn is_symmetric(list: &[u32]) -> bool {
match list {
[] | [_] => true,
[x, inside.., y] if x == y => is_symmetric(inside),
_ => false
}
}
fn main() {
let sym = &[0, 1, 4, 2, 4, 1, 0];
assert!(is_symmetric(sym));
let not_sym = &[0, 1, 7, 2, 4, 1, 0];
assert!(!is_symmetric(not_sym));
} `
unsafe Rust 的主要缺点是其对行为的强大的静态担保。但安全检查是保守的:有些程序实际上是安全的,但是编译器无法证实...
MATLAB中矩阵A的逆矩阵被记为A−1,下面的关系成立:AA−1 = A−1A = 1MATLAB中不是每个矩阵都有逆矩阵的,比如一个矩阵的行列式...
在MATLAB中绘制函数图形的步骤如下:先定义变量 x,通过指定的变量 x值的范围,该函数被绘制;然后定义函数,y = f(x);最后调用...
在MATLAB中创建矩阵有以下规则:矩阵元素必须在 “[ ]” 内;矩阵的同行元素之间用空格(或 “,”)隔开;矩阵的行与行之间用 “...
MATLAB中 switch 块有条件地执行一组语句,这些语句是从几个选项里选择执行的,其中每个选项涵盖了一个 case 语句。请记住:计算...