Mozillaが開発中のシステムプログラミング言語「Rust」に触ってみた①
備忘録がてら、本当に雑多に書いていきます。 基本的にはこいつに沿って進めます。 →The Rust Language Tutorial
コンパイルはJavaより遅い
システム寄りの言語だから当たり前?Cを触ったことがないので、比較できません。。
変数宣言がSwiftっぽい
static MONSTER_FACTOR: f64 = 57.8; let monster_size = MONSTER_FACTOR * 10.0; let monster_size: int = 50;
ノーマルの変数の場合、型宣言はオプショナルだが、定数の場合は必須な模様。
ちなみに、letで宣言したローカル変数は基本的に中身を変えないのが前提っぽくて、変える場合はlet mutで宣言します。
let hi = "hi";
let mut count = 0i;
while count < 10 {
println!("count is {}", count);
count += 1;
}
まだ書き方に謎が多いですが、構わず進みます。
変数名や関数名はスネークケース
ブロックの考え方 〜変数への代入がスマート〜
let price;
if item == "salad" {
price = 3.50;
} else if item == "muffin" {
price = 2.25;
} else {
price = 2.00;
}
と書くところを、
let price =
if item == "salad" {
3.50
} else if item == "muffin" {
2.25
} else {
2.00
};
という表記が可能。 ブロックの中にセミコロンを書かないことで、連続した式になる模様。
In short, everything that's not a declaration (declarations are let for variables; fn for functions; and any top-level named items such as traits, enum types, and static items) is an expression, including function bodies.
これ結構重要です。 つまり、明示的に宣言しなかったものは、すべて式であり、その式は何かしらの値を返すということのようです。
fn is_four(x: int) -> bool {
// 明示的なreturnは要らない
x == 4
}
今日はこんなところで。 細々と続けていたらと思います。