分组表达式

语法
分组表达式 :
   ( 表达式 )

括号表达式 将一个单独的表达式包裹起来,最终的结果是这个表达式的值。 括号表达式的语法是 ( ,然后是一个表达式,称为 内嵌操作数 ,随后是一个 )

括号表达式的值等同于内嵌操作数的值。与其他表达式不同的是,括号表达式既是 占位表达式 也是值表达式。 当内嵌操作是占位表达式时,括号表达式也是占位表达式;当内嵌操作是值表达式时,括号表达式也是值表达式。

括号可以用于显式修改表达式中子表达式的优先级顺序。

以下是括号表达式的示例:

#![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");
}