第13回です。
前回はこちら。
[第13回の様子]
2021/10/06に第13回を開催した。
内容としてはRust By Example 日本語版の「3.3. 定数」、「4. 変数バインディング」に取り組んだ。
参加者は少し増えて、全部で11人くらいいたはず。初参加のメンバーもいた!
Slackでの書き込みはちょっと増えてた。
[学んだこと]
const THRESHOLD: i32 = 10; fn is_big(n: i32) -> bool { // 関数内で定数を参照 n > THRESHOLD }
- staticは変更できなくはないが、実際に変更しようとすると相当むずかしい
- staticなライフタイムについてはまた後半で登場するようなのでいったん忘れることに。
- staticはミュータブルと書かれていたが、実際にやってみるとエラーになった
static LANGUAGE: &str = "Rust"; fn main() { LANGUAGE = "not rust"; println!("This is {}", LANGUAGE); } // 以下のコンパイルエラー Compiling playground v0.0.1 (/playground) error[E0594]: cannot assign to immutable static item `LANGUAGE` --> src/main.rs:14:5 | 14 | LANGUAGE = "not rust"; | ^^^^^^^^^^^^^^^^^^^^^ cannot assignど
- どうしてstaticな変数を変更したければlazy_staticとかone_cellを使うといいらしい
- 4. 変数バインディング
- これは特段新しい内容はなかった
- letで変数宣言して、型はコンパイラがある程度推測してくれる
- 使用されていない変数があると警告を出してくれる
- が、Rust By Example 日本語版のサイトで実行すると警告が出てくれなかった
- Rust Playgroundで実行すると警告が確認できた
fn main() { let noisy_unused_variable = 2u32; } // 以下の警告 warning: unused variable: `noisy_unused_variable` --> src/main.rs:20:9 | 20 | let noisy_unused_variable = 2u32; | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_noisy_unused_variable` | = note: `#[warn(unused_variables)]` on by default
- 変数名を
_
始まりにするとこの警告は消える - しかし、特に理由がなければ、警告がでたら大人しく使ってない変数を消す方が良さそう
[まとめ]
モブプログラミングスタイルでRust dojoを開催した。
今週は比較的落ち着いた内容だった。staticでわたわたしたけど...。
今週のプルリクエストはこちら。