memo.log

技術情報の雑なメモ

[Rust]関数の戻り値とセミコロンについてのサンプルメモ

// 戻り値がない関数定義の場合、空のタプルと同じになる。
// つまり、以下の2つは同じ
fn test1a() {
}
fn test1b() -> () {
}

// 戻り値を指定させる方法は2つ
// 1. return キーワードとセミコロンをつけて返す
// 2. return キーワードを使わずセミコロンなしで返す
fn test2a() -> i32 {
  return 1;
}
fn test2b() -> i32 {
  1
}

// なので、例えば戻り値型を指定しない=空のタプルとするのに、
// 以下のようにセミコロンなしで返そうとするとコンパイルエラーになる
// fn test3() {
//  1 // mismatched types expected `()`, found integerrust/
// }

// 以下は () を返しているのでOK
fn test4() {
  ()
}

fn main() {
}

『パーフェクト Rust』の「7-1-4」が分かりやすい。