在这种情况下,两个句号和下划线有什么区别?
两者都可以编译和运行,但为什么要更喜欢其中一个呢?
let a = Some("a");
match a {
Some(_) => println!("we are in match _"),
_ => panic!(),
}
match a {
Some(..) => println!("we are in match .."),
_ => panic!(),
}
两者都可以编译和运行,但为什么要更喜欢其中一个呢?
..
形式(甚至Foo { .. }
形式,对于元组结构体/枚举变体也适用)的一个原因是它使得匹配对参数数量的变化或者对声明中使用的花括号或元组样式的变化具有更强的鲁棒性。(或者如果你希望代码在任何变体更改时中断并需要审核,你可以选择_
形式。)当你有一堆具有不同类型参数的变体时,能够以相同的方式编写所有分支非常方便。 - Mario Carneiro..
形式(甚至是Foo { .. }
,对于元组结构体/枚举变体也适用)的一个原因是它使得匹配在参数数量或声明中使用大括号或元组样式的变化下更加健壮。(或者如果你希望代码在变体发生任何更改时中断并需要审核,可以选择_
形式。)当你有一堆具有各种类型参数的变体时,能够以相同的方式编写所有分支非常方便。 - Mario Carneiro..
形式(甚至是Foo { .. }
,对于元组结构体/枚举变体也适用)的一个原因是它使匹配对参数数量的变化或者声明中使用花括号或元组样式的变化具有弹性。(或者如果你希望代码在变体发生任何更改时中断并需要审核,你可以选择使用_
形式。)当你有一堆具有各种参数类型的变体时,能够以相同的方式编写所有分支是很方便的。 - undefined