プログラミング言語Rustの紹介すとまと
View Slide
自己紹介• 学習院大学理学部数学科2019年卒業• 休職中• github.com/stmtk1• qiita.com/stmtk• 機械学習 / シミュレーション / ゲーム開発 /自作プログラミング言語に興味あり
Rustとは• 2015年1月に正式リリース• 組み込み系、自作OS、プログラミング言語、ゲーム制作などで使われる• Better than C++になる予定• 関数型
Rustの何がいいか• 誰もが読みやすいソースコードになる• コンパイラが優秀• 書きやすい• メモリを消費しにくいようになっている
とりまHello World• brew install rust でインストール• cargo new hello_worldでプロジェクト作成• cd hello_world でプロジェクト内のフォルダへ移動• cargo run で”hello world”という文字列が出てくる
Fizz Buzzプロジェクトを作成して、プロジェクト内のsrc/main.rsを次のように変更し実行
三項演算子が使えない
代入に返り値がない
マクロはただの置換じゃない
所有権とライフタイムとは
所有権によって解決する問題• ガベージコレクションをする必要がなくなる• スマートポインタを使う必要がなくなるインスタンスを一つの変数だけに持たせて使い捨てにする
• 所有権の借用• インスタンスのクローン1つの変数を使いまわしたい
コンパイラについて• オプションで設定しなくても使われていない変数/関数があると警告が出る• 変数名を間違えても、似た名前の変数を教えてくれる• LLVMを使っている
まとめ• 所有権とライフタイムがメモリの消費を抑える• マクロが優秀• 可読性が高い• 束縛分配などが使えて書きやすい• コンパイラ
Tutorialhttps://doc.rust-jp.rs/the-rust-programming-language-ja/1.6/book/https://doc.rust-lang.org/1.3.0/book/hello-cargo.htmlhttps://doc.rust-jp.rs/book/second-edition/foreword.html