// dictionary
文.
文(Statement)は、値を生成せずに宣言や動作の実行だけを行うコードの単位です。値を生成する式と対になる概念で、Rustの文はletで変数などの名前を導入する宣言文と、式を評価して結果の値を捨てる式文(多くは式の末尾にセミコロン;を付けた形)の2種類に大別されます1。
fn main() {
let price = 1000; // 宣言文: 右辺を評価して名前に束縛する(文自体は値を生成しない)
println!("価格: {price}円"); // 式文: 式を評価し、結果の値は捨てる
}Playgroundで開く文の2分類
| 種類 | 例 | 役割 |
|---|---|---|
| 宣言文 | let price = 1000;、ブロック内のfnやstructの定義 |
名前を導入する |
| 式文 | println!("...");、calc(); |
式を評価し、結果の値を捨てる |
セミコロンの働き
関数本体の末尾では、セミコロンの有無が「値を返す式」か「値を捨てる文」かの分かれ目になります。
セミコロンを付けると型エラーになる例
// エラー: E0308(セミコロンで値が捨てられ、戻り値が () になる)
fn add_tax(price: i32) -> i32 {
price * 110 / 100; // このセミコロンを削除すれば値が返る
}
補足
ブロックで終わる式はセミコロンを省略できる
if・match・loop式・for式などブロックで終わる式を文の位置に置く場合は、セミコロンを付けずにそのまま文として扱えます(この場合、式の型は()である必要があります)。普段forループの後ろにセミコロンを書かないのはこのルールによるものです。
Footnotes
この辞書が使われているページ
backlinks 8