Skip to content

Instantly share code, notes, and snippets.

View toshimasa-nanaki's full-sized avatar

Toshimasa Nanaki toshimasa-nanaki

  • 日本(東京)
View GitHub Profile
@toshimasa-nanaki
toshimasa-nanaki / main.rs
Created December 3, 2018 13:50
Rust ループ(ラベル)
fn main() {
//ループラベル
'outer: for i in 0..10 {
'inner: for j in 1..11 {
if i % 2 != 0 { continue 'outer; }
if j % 2 == 0 { continue 'inner; }
println!("i: {}, j: {}", i, j);
}
}
}
@toshimasa-nanaki
toshimasa-nanaki / main.rs
Created December 3, 2018 13:39
Rust ループ(break文、continue文)
fn main() {
//break文が使える。
let mut x = 7;
loop {
x -= 1;
println!("{}", x);
if x == 3 { break; }
}
//continue文が使える。
@toshimasa-nanaki
toshimasa-nanaki / main.rs
Last active December 3, 2018 13:30
Rust ループ(for文)
fn main() {
//for(int i = 0; i < 10; i++)と同じ
for x in 0..10 {
println!("{}", x);
}
//何回目の繰り返しか知りたい場合は以下。
for (index, value) in (5..10).enumerate() {
println!("index = {} and value = {}", index, value);
}
@toshimasa-nanaki
toshimasa-nanaki / main.rs
Last active December 3, 2018 13:22
Rust ループ(無限)
fn main() {
loop {
println!("infinite loop");
}
//以下のようにも書けるが非推奨。
//while true{
//  println!("infinite loop");
//}
}
@toshimasa-nanaki
toshimasa-nanaki / main.rs
Last active March 26, 2023 06:55
Rust if文
fn main() {
let x = 5;
//if(x == 5) { //←こうも書けるが、コンパイル時に警告が出る
if x == 5 {
println!("x is 5");
} else {
println!("x isn't 5");
}
//ifは式だからこんなこともできる。(三項演算子はない)
@toshimasa-nanaki
toshimasa-nanaki / main.rs
Created December 2, 2018 04:44
Rust 関数(関数ポインタ)
fn main() {
let function: fn(i32) -> i32 = times_number; //型として「fn(i32) -> i32」を宣言。
println!("When x is doubled, {}.", function(7)); //上で宣言した変数を利用して関数呼び出し
}
fn times_number(x: i32) -> i32 {
x * 2
}
@toshimasa-nanaki
toshimasa-nanaki / main.rs
Created December 2, 2018 04:35
Rust 関数(パニック発生)
fn main() {
panic();
//division_by_0();
}
//実行中の現在のスレッドを与えられたメッセージとともにクラッシュさせるマクロを実行
fn panic() -> ! {
panic!("This function never returns!");
}
@toshimasa-nanaki
toshimasa-nanaki / main.rs
Last active December 2, 2018 04:14
Rust 関数(戻り値考慮)
fn main() {
println!("When x is doubled, {}.", times_number(7));
}
fn times_number(x: i32) -> i32 {
x * 2 //セミコロンがない=i32型で返す。(セミコロンがあると型なしになりコンパイルエラー)
// return x * 2; (もちろんこんなことはできる)
}
@toshimasa-nanaki
toshimasa-nanaki / main.rs
Created December 2, 2018 03:59
Rust 関数(基本)
fn main() {
print_2times_number(7);
print_multiply_number(7,8);
}
//第1引数を2倍した数を出力
fn print_2times_number(x: i32) {
println!("When x is doubled, {}.", x * 2);
}
@toshimasa-nanaki
toshimasa-nanaki / main.rs
Last active December 2, 2018 02:02
Rust 変数束縛
//注意!! 勉強メモ用にmainを並べているだけ。
//実際に動かす場合はこの中から一つだけmainを選択すること。
//(1)型推論を利用した宣言
fn main() {
let x = 7;
println!("x is {}.", x); // x is 7.
}
//(2)型を定義