e.f() 各種リテラル・クロージャ f() A{} 42 "s" () (e,e) e..e [e;n] [e,e] 代入・複合代入 ||e x = e x += e アドレス演算子 &e 各種演算子 (&, *以外) -e e + e box e インラインアセンブリ e as T asm!() ブロック系構文 制御構文 {} if while for loop match unsafe try async return break continue yield e? このリストのうちいくつかはそもそも戻り値に深い意味 がない (! や () 型になる) let も同様だが、こいつは式ですらない
Some(ref mut s) = s { s.push_str("world!"); } if let Some(s) = s { eprintln!("{}", s); } 場所に対するマッチング 値に対するマッチング let, match, if let, while let で共通して現れる現象。 引数と for 文の場合は必ず値が渡ってくる