プログラミング言語のRustも盛り上がってますね。
Go言語が出てきて広まりつつあるか、そうでないかくらいなのに、今度はRust!?と思ってしまいました。
ともあれ、以下の公式ドキュメントを参考に触れてみることにしました。
変数宣言
fn main() { let x = 5; println!("The value of x is: {}", x); }
変数宣言はletを使います。Swiftみたいだなあと。
可変であることを明示する
Swiftでは、letで宣言された変数には再代入は出来ませんでした。Rustも同様です。
Rustでは再代入する場合はmutをつける必要があります。
mutable(可変)であることを明示します。
fn main() { let mut x = 5; println!("The value of x is: {}", x); x = 6; println!("The value of x is: {}", x); }
関数宣言
fn add(a:i32,b:i32) -> i32 { a + b } fn main() { let x = add(4,3); println!("The value of x is: {}", x); }
returnを使いません。
返り値の型を指定しているので、別に関数を返すつもりではないのに返していたということはないでしょうが、どうかなあとも思います。
ただ、ポイントとして、a+b
であり、a+b;
ではありません。返り値にする時はセミコロンをつけないことです。
この辺りで区別はするので、そこまで、ここで値を返すつもりじゃなかったんだよなんてことはなさそうです。
fn main() { let x = f(); println!("The value of x is: {}", x); } fn f() -> i32 { 100 10 }
上記みたいにすると、以下のようなコンパイルエラーです。
Compiling playground v0.0.1 (/playground) error: expected one of
.
,;
,?
,}
, or an operator, found10
--> src/main.rs:8:5 | 7 | 100 | - expected one of.
,;
,?
,}
, or an operator 8 | 10 | ^^ unexpected token