関数

書き方

golang + tsっぽい書き方の印象があります(結局よくある形)

変数名と同じく関数名はスネークケースで書くのが推奨らしい

// 引数・戻り値なし(厳密には違うけどそれは後述する)
fn main() {
  // 処理
}

// 引数・戻り値あり
fn add_num(a: i32, b: i32) -> i32 {
  a + b // rubyと同じで末尾のreturnは省略することができる
}

式 or 文

前提: 言語に問わず共通概念として

  • その関数が式の時、その関数の呼び出しは値を持つ
  • その関数が文の時、その関数の呼び出しは値を持たない

その中で値を持たないという表現方法が言語によって異なってくる

TSではjsに型制約がないから、とりあえず値として使えないようにする → void

Rustでは()型を返すことで、値を持たないことを表現する → ()

()型はunion型と呼び、その値しか持たない型のことを指す

// これは`文`
fn main() {
  // 処理
  // 実質的に`()`がreturnされる
}

// これは`式`
fn add_num(a: i32, b: i32) -> i32 {
  a + b
}

参考