より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

Rustに触れてみた

プログラミング言語のRustも盛り上がってますね。

www.atmarkit.co.jp

japan.zdnet.com

Go言語が出てきて広まりつつあるか、そうでないかくらいなのに、今度はRust!?と思ってしまいました。

ともあれ、以下の公式ドキュメントを参考に触れてみることにしました。

doc.rust-lang.org

変数宣言

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, found 10 --> src/main.rs:8:5 | 7 | 100 | - expected one of ., ;, ?, }, or an operator 8 | 10 | ^^ unexpected token