ラズパイでRust

を今年の後半はRustの勉強兼ねて使ってみようと思う。GPIOなどの固有ハードウェア操作用の基本的なライブラリはすでに存在するだろうから。

https://misoji-engineer.com/archives/rust-led.html

クロス開発環境はDocker(GolangのネーティブC環境の必要性と同じく)になるのかそれともGolangと同じようにターゲット指定で済むのか、その前にRustの基本的な部分の習得が先ですが。

https://isehara-3lv.sakura.ne.jp/blog/category/rust/

はPlayground使って初めてのRustですが、オンラインの学習用には、

https://doc.rust-jp.rs/book-ja/title-page.html

あたりが適切のように思う。

 

P.S. (2023/8/2)

クロスコンパイルはcrossツールを使いますが、実はDockerの中にターゲットのイメージを展開して実行されます。従って賢いやり方ですね、Golangと比べても。

 

admin

Rustの基本的なsyntax

初めてRustをPlaygroungで動かしてみたけど、結構独特だと思う

https://www.rust-lang.org

“for” loopはイテレータ専用

“The for in construct can be used to iterate through an Iterator. “

通常のループ処理は無限ループ使ってcontinuebreakで条件判断

<初めてのRustのコード>

fn main() {
    let mut i = 0;
    loop {
        println!("i = {}", i);
        if i == 10{
            break i;
        }
        i += 1;
    };
}

・mutable変数はmutで宣言が必要、宣言しないとimmutable変数になる

・println!では必ずプレースホルダー”{}”を入れる

loop}にも;が必要、if{}}の後ろにはあっても無くてもコンパイルエラーにはならないけれども

・ifの条件をカッコ()で括らないのはGoと同じ

 

admin