字段初始化简写

Minimum Rust version: 1.17

在以往的 Rust 中,当初始化一个结构体的时候,总是需要完全按照 key: value 对的写法:

  1. struct Point {
  2. x: i32,
  3. y: i32,
  4. }
  5. let a = 5;
  6. let b = 6;
  7. let p = Point {
  8. x: a,
  9. y: b,
  10. };

但是,这些字段通常会是相同的名字,所以你可以把它写成这样:

  1. let p = Point {
  2. x: x,
  3. y: y,
  4. };

现在,如果变量名和结构体字段名相同,可以省略写成这样:

  1. struct Point {
  2. x: i32,
  3. y: i32,
  4. }
  5. let x = 5;
  6. let y = 6;
  7. // new
  8. let p = Point {
  9. x,
  10. y,
  11. };