実践Rust入門 2日目

3章頭から途中まで。

バイトニックソートなるもののアルゴリズムの説明から。
言語の入門本にアルゴリズムの説明まで突っ込んでくるとはチャレンジャーだなぁ。
並列化の効果が出やすいアルゴリズムみたい。

Rustで実装前に、一旦Pythonの実装を挟むとは回りくどいなと思ったけれども、
Pythonを挟んだおかげで、Rust実装時はアルゴリズムはもう気にならずに、
Rustの機能面に集中できた気がする。
cargo checkcargo testで安心して進められた。

明日はもっと読み進めたい。。

おぼえがき
  • 未実装関数をビルド通すためのマクロ unimplemented!();
  • 関数の引数名は、Prefixに_つけないと警告が出てた
  • 命名規則の慣習
    • 変数名や関数名は小文字のスネークケース
    • 定数やグローバル変数は大文字のスネークケース
    • ユーザ定義型やトレイとはキャメルケース
    • ジェネリクスの型パラメータは大文字1文字
    • 上記をルールに逸脱するとコンパイラが警告を出す
    • 警告を抑える場合は、下記
      • #[allow(non_snake_case)]: 関数、変数、ライフタイム、モジュール
      • #[allow(non_upper_case_globals)]: 定数、グローバル変数
      • #[allow(non_camel_case_types)]: 型、列挙型、トレイと、ジェネリクスの型パラメータ
  • デッドコード内(if fales{}内など)もコンパイルエラーを出す対象っぽい
課題
  • コンソールでRustのマニュアルをサクッと見る方法考えないとね

実践Rust入門[言語仕様から開発手法まで]

実践Rust入門[言語仕様から開発手法まで]