Progrust Library.

// dictionary

.

文(Statement)は、値を生成せずに宣言や動作の実行だけを行うコードの単位です。値を生成すると対になる概念で、Rustの文はlet変数などの名前を導入する宣言文と、式を評価して結果の値を捨てる式文(多くは式の末尾にセミコロン;を付けた形)の2種類に大別されます1

fn main() {
    let price = 1000;            // 宣言文: 右辺を評価して名前に束縛する(文自体は値を生成しない)
    println!("価格: {price}円"); // 式文: 式を評価し、結果の値は捨てる
}
Playgroundで開く

文の2分類

種類 役割
宣言文 let price = 1000;、ブロック内のfnstructの定義 名前を導入する
式文 println!("...");calc(); 式を評価し、結果の値を捨てる

セミコロンの働き

関数本体の末尾では、セミコロンの有無が「値を返す式」か「値を捨てる文」かの分かれ目になります。

セミコロンを付けると型エラーになる例
// エラー: E0308(セミコロンで値が捨てられ、戻り値が () になる)
fn add_tax(price: i32) -> i32 {
    price * 110 / 100; // このセミコロンを削除すれば値が返る
}

補足

ブロックで終わる式はセミコロンを省略できる

ifmatchloop式for式などブロックで終わる式を文の位置に置く場合は、セミコロンを付けずにそのまま文として扱えます(この場合、式の型は()である必要があります)。普段forループの後ろにセミコロンを書かないのはこのルールによるものです。

Footnotes

  1. The Rust Reference: Statements

この辞書が使われているページ

backlinks 8

  1. 辞書if式
  2. 辞書let-else文
  3. 辞書ユニット型
  4. 辞書関数
  5. 辞書
  6. 動かして学ぶRustプログラミング問題集 › 第1章 コンソール出力と変数
  7. 動かして学ぶRustプログラミング問題集 › 第3章 制御フロー
  8. 動かして学ぶRustプログラミング問題集 › 第4章 関数