🦀
Rustの勉強2
こんにちは!kirigayaです。
今回は第2回です。
ん?と感じたことをまとめています。
標準ライブラリを使う時
-
プロシージャ形式
モジュール名::関数名fn main(){ print!("{}", str::len("abc")); } -
オブジェクト形式(推奨らしい)
オブジェクト名::メソッド名fn main(){ print!("{}", "abc".len()); }
条件式
{}波カッコで囲まれた部分をブロックと呼ぶ
書き方1
fn main(){
let n = 5;
if n == 3{
print!("{}", n)
}
else {
if n >= 5{
print!("{}", "5以上")
}
}
}
書き方2else ifパターン
fn main(){
let n = 5;
if n == 3{
print!("{}", n)
}
else if n >= 5 {
print!("{}", "5以上")
}
}
評価順序
fn main() {
let mut limit = 4;
let mut iter = 0;
//6が評価される
for n in 1..limit + 2 {
limit -= 1;
iter += 1;
print!("繰り返し{}回目\n", iter);
print!("limitは{}nは{}\n", limit, n);
}
print!("limitの最終結果{}\n", limit);
}
コードの評価順序
- 最初に
limitが4で設定される - ループが開始され、
nが1からスタート(範囲は1~6) - まず、
nが1のとき、limitが1減少し、iterが1増加 - "繰り返し1回目" と "limitは3nは1"が出力されます。
- 次のループでは、
nが2になります。limitが再び1減少し、iterが1増加します。 - "繰り返し2回目" と "limitは2nは2" が出力されます。
- 最後のループでは、
nが3になります。limitが再び1減少し、iterが1増加します。
ポイントとなるのは、limit の値がループ内で減少していくことです。limit がループの条件に影響を与えるため、ループの反復ごとに条件が変化し、評価手順が複雑になります。
Discussion