分组表达式
语法
分组表达式 :
(
表达式)
括号表达式 将一个单独的表达式包裹起来,最终的结果是这个表达式的值。
括号表达式的语法是 (
,然后是一个表达式,称为 内嵌操作数 ,随后是一个 )
。
括号表达式的值等同于内嵌操作数的值。与其他表达式不同的是,括号表达式既是 占位表达式 也是值表达式。 当内嵌操作是占位表达式时,括号表达式也是占位表达式;当内嵌操作是值表达式时,括号表达式也是值表达式。
括号可以用于显式修改表达式中子表达式的优先级顺序。
以下是括号表达式的示例:
#![allow(unused)] fn main() { let x: i32 = 2 + 3 * 4; // 未使用括号的表达式 let y: i32 = (2 + 3) * 4; // 使用了括号的表达式 assert_eq!(x, 14); // 验证 x 的值是否为 14 assert_eq!(y, 20); // 验证 y 的值是否为 20 }
必须使用括号的一个例子是调用结构体成员的函数指针:
#![allow(unused)] fn main() { struct A { f: fn() -> &'static str } impl A { fn f(&self) -> &'static str { "The method f" } } let a = A{f: || "The field f"}; assert_eq!( a.f (), "The method f"); assert_eq!((a.f)(), "The field f"); }