Macで実行
$ curl https://sh.rustup.rs -sSf | sh
> 選択:1) Proceed with installation (default)
$ source $HOME/.cargo/env
$ rustup update
$ rustup self uninstall
$ rustc --version
$ mkdir hello_world
$ cd hello_world
- ファイルの拡張子:
.rs - ファイル名に複数の単語を扱う場合は、アンダースコアを利用して区切る
今回の作成はmain.rsで作成
fn main() {
println!("Hello, world!");
}
- Rustのスタイルは、4つのスペースでインデントする
println!は、マクロ。関数を呼び出した場合、printlnとして入力
コンパイルと実行
$ rustc main.rs
$ ./main
- 空白を削除してみて
--checkオプションで変更されたことを確認しています
$ rustfmt --check main.rs
Diff in /Users/hironori/work/learn-rust-programming/hello_world/main.rs at line 1:
fn main() {
- println!("Hello, world!");
+ println!("Hello, world!");
}
- Cargo:Rust のビルドシステムおよびパッケージマネージャー
- コードに依存関係が必要なライブラリを呼び出す
$ cargo --version
$ cargo new hello_cargo
$ cd hello_cargo
$ cat Cargo.toml
[package]
name = "hello_cargo"
version = "0.1.0"
authors = ["hirontan <hirontan@sora.flights>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
- package:ステートメント
- 名前、バージョン、作成者、使用するエディションの記載
- dependencies:プロジェクトの依存関係リスト
- コードのパッケージはクレートと呼ばれる
- ソースファイルが
srcディレクトリ内にある - 最上位のプロジェクトディレクトリは、READMEファイル、ライセンス情報、構成ファイル、およびコードに関係のないその他のも のである
- Cargoを利用しないプロジェクトで始めた場合、ソースコードを
srcディレクトリに置き直し、TOMLファイルを作成する
$ cargo build
target/debug/hello_cargoに実行ファイルができる
$ ./target/debug/hello_cargo
cargo buildを実行すると、Cargo.lock ファイルができる- 依存関係を記載してくれる
- ソースコードをコンパイルし、実行ファイルをすべて1つのコマンドで行う方法もある
$ cargo run
- ファイルが変更されていないと判断されると、コンパイルが実行されない
$ cargo check
$ cargo build --release
target/release配下にファイルができる- 最適化によりコード実行が高速になるかわりに、コンパイルに時間がかかる
- 実行時間のベンチマークをする場合、
target/releaseの実行ファイルを実行する