Rust を書きはじめて日が浅い私は「ここにセミコロン書いていいんだっけ?書かなくていいんだっけ?」と混乱することがよくあります。 ちょっと作為的ですが例ですが、たとえばこういうとき。 #[allow(dead_code)] fn main() { struct Foo {x: i64} // ◁─┬─ 0個でも1個でもいい struct Bar {x: i64}; // ◁─┘ struct Baz(i64); // ◁─┬─ 1個でも2個でもいい struct Qux(i64);; // ◁─┘ const A: i64 = 1; // ◁─┬─ 1個でも2個でもいい const B: i64 = 1;; // ◁─┘ let _x = 1; // ◁─┬─ 2個だと unnecessary trailing semicolon と怒られる // let _y = 1;; // ◁─┘