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 }
今日はこんなところで。 細々と続けていたらと思います。