パソコンなどの話題を書いていきます。
こちらのページでインストール方法を紹介していますRust Languageの使い方をまとめてみます。途中で挫折するかもしれません。
use std;
// 関数を定義
fn add(x: int, y: int) -> int{
ret x + y;
}
fn main() {
let a = 5,b = 10;
// #fmtで出力内容の整形
std::io::println(#fmt("a + b = %d", add(a, b)));
}
実行結果
a + b = 15
まず基本の構文です。"fn"は関数を定義します。int型の引数を二つ持ち合計した値を戻り値にしています。
プログラムは実行されるとmain関数から実行されます。
use std;
fn add(x: int, y: int) -> int{
ret x + y;
}
fn main() {
let a = 10,b = 20;
let x: int = add(a, b);
std::io::println(#fmt("a + b = %d", x));
}
変数xに大して明示的に型を指定することもできます。コロンをはさんでint型を指定しています。
use std;
fn add(x: int, y: int) -> int{
ret x + y;
}
type single_param_fn = fn(int) -> int;
fn main() {
let add4: single_param_fn = bind add(4, _);
std::io::println(#fmt("bing %d", add4(10)));
}
BINDは関数にデフォルトの引数を設定し再定義することができます。
ですが上記のソースをコンパイルは出来るのですが、実行すると以下のようなエラーになります。
bing 14 rust: fatal, 'leaked memory in rust main loop (1 objects)' failed, ./src/rt/memory_region.cpp:158 1 objects 中止
ちょっと問題が分からないため保留です。
use std;
fn main() {
let i = 0;
std::io::print("i = ");
// iが5より小さい間
while i < 5 {
std::io::print(#fmt("%d,", i));
i = i + 1;
}
std::io::println("");
let v: [int] = [0, 1, 2, 3, 4];
std::io::print("e = ");
// vの要素全てに対して
for e: int in v {
std::io::print(#fmt("%d,", e));
}
std::io::println("");
let ary: [str] = ["A", "B", "C", "D", "E"];
std::io::print("ary = ");
// aryの要素全てに対して
for s: str in ary {
std::io::print(s + ",");
}
std::io::println("");
}
実行結果
i = 0,1,2,3,4, e = 0,1,2,3,4, ary = A,B,C,D,E,
while文とfor文の使い方を記述しました。for(;;)の使用方法を探していますがちょっと分かっていません。
use std;
fn howMany(x:int){
std::io::print(#fmt("%d => ", x));
// xの値によって分岐する。
// n1 to n2 によって範囲判定も可能
alt x {
0 { std::io::println("nothing"); }
1 | 2 { std::io::println("a few"); }
3 to 10 { std::io::println("sevral"); }
_ { std::io::println("many"); }
}
}
fn main() {
howMany(0);
howMany(2);
howMany(3);
howMany(10);
howMany(11);
howMany(-1);
}
実行結果
0 => nothing 2 => a few 3 => sevral 10 => sevral 11 => many -1 => many
上記は条件分岐の例です。
xの値が
のそれぞれ場合という上見聞記を行っています。この場合-1はそれ以外に判定されていますので別の条件判定が必要になリます。
HandyReader : C/C++,Java等のソースコードに色付けをしてくれるアプリです。