【学習14日目】3.3.3 戻り値のある関数

3.3.3 戻り値のある関数

  • 関数は、それを呼び出したコードに値を返すことができます。
  • 矢印( -> ) の後に型を書いて確かに宣言します。
  • 多くの関数は最後の式を暗黙的に返します。


fn five() -> i32 {
5
}
fn main() {
let x = five();
println!("The value of x is: {}", x);
}
そろそろいちいち型注釈をすることに慣れなくては。

混乱してきた。文 (statement)、式 (expression)、関数 (function)、
そして戻り値のある関数 (Functions with Return Values)

※疑問。ひとつのコードのなかの各関数の中で使われている変数名は重複していてもエラーにならない?


fn first_function() {
let x : i32 = 1;
println!("x is {}", x);
}

fn second_function() {
let x : i32 = 2;
println!("x is {}", x);
}

fn main() {
first_function();
second_function():
}

これは動く。
別の関数であれば変数名は干渉しない。

疑問
変数に値をセット「するだけ」の関数は動く?
→ それが以下にあたるが、5の末尾にセミコロンを付けるとエラーになる。
fn five() -> i32 {
5
}

明日はここまでの記法を自分なりに整理してみよう。