プログラミング言語の基礎である反復と条件分岐をマスターすれば、その言語ではだいたいやりたいことが出来るようになります。
今回はRust言語の条件分岐をやっつけたいと思います。
ノーマルサンプルコード
if_else.rs : if ~ else
fn main(){
let n = 5;
if n < 10{
println!("under 10");
}
else{
println!("over 10");
}
}
実行結果
$ rustc if_else.rs
$./if_else
> under 10
if ~ elseif ~ else
fn main(){
let n = 15;
if n < 10{
println!("under 10");
}
else if n < 20{
println!("under 20");
}
else{
println!("over 10");
}
}
実行結果
$ rustc if_elseif_else.rs
$./if_elseif_else
> under 10
文字列判定
str.rs : 文字列の一致
fn main(){
let str = "hoge";
if str == "hoge"{
println!("It's hoge.");
}
else{
println!("It's not hoge.");
}
}
contain.rs : 文字列を含む判定
fn main(){
let str = "Is that a hoge ?";
if str.contains("hoge"){
println!("Include hoge.");
}
else{
println!("Exclude hoge.");
}
}
実行結果
$ rustc contain.rs
$./contain
> Include hoge.
パターンマッチ
Rustには、他のプログラム言語にあるswitchの代わりにmatchという命令が用意されています。
matchフロー制御演算子というらしく、次のように使います。
match.rs
fn main(){
let n = 3;
match n {
0 => println!("match 0"),
1 => println!("match 1"),
2 => println!("match 2"),
_ => println!("other"),
}
}
実行結果
$ rustc match.rs
$./match
> other
switchと似たような構造なのですが、defaultに当たる添字が"_"(アンダースコア)になっているのと、いちいちbreakしなくていいのは、書きやすいですね。
match_some.rs : 範囲マッチ
fn main(){
let n = Some(9);
match n {
Some(i) => println!("match {}" , i),
None => println!("other"),
}
}
Someが何かというのは、後の型のところでやるとして、matchには、Some,Noneという書き方があると覚えておくと便利そうです。
あとがき
Rust言語の条件分岐には、if letという、独特なものがあるが、今回はこれは割愛した。
ネットで検索してみたところ、まともに解説できているサイトがほぼ無かったので、もう少しRustの熟知が必要と判断して、後ほど自分で解析しようと思います。
とりあえず、簡単な条件分岐ができるようになったら、あとは実践あるのみですね。
0 件のコメント:
コメントを投稿