目次

rustc によるビルド

サンプル

fn main() {
    println!("Hello world!");
}

ビルド/実行

rustc main.rs. && ./main
Hello world!

cargoの使用

https://doc.rust-lang.org/cargo/index.html

コマンド説明使用例/補足など
cargo new プロジェクト名新規パッケージを作成するcargo new --bin sampleapp
cargo new --lib samplelib
cargo init既存ディレクトリに新規パッケージを作成する
cargo buildプロジェクトをビルドするtargetディレクトリ配下に 実行可能ファイルが出力される
cargo runアプリケーションを実行する
cargo checkアプリケーションがビルド可能かどうかをチェックする実行可能ファイルは出力しない
cargo add依存ライブラリを追加する
cargo remove依存ライブラリを削除する
cargo clean
cargo doc
cargo test
cargo update
cargo publish
cargo install
cargo uninstall

データ型

https://doc.rust-lang.org/book/ch03-02-data-types.html

  • 整数型
    • i8, i16, i32, i64, i128, isize
  • 整数型(符号なし)
    • u8, u16, u32, u64, u128, usize
  • 浮動小数点
    • f32, f64
  • 真偽値
    • bool
  • 文字
    • char (4バイト)
  • その他
    • タプル、配列など(後述)

各数値型の格納可能なサイズはデータ型の数値部分と同じ(ビット)
isize, usize についてはコンピュータのアーキテクチャによって異なり、64 ビットマシンの場合は64ビット、32ビットマシンの場合は 32ビットとなる。

基本構文

変数の宣言と代入

変数は let で宣言を行うが、デフォルトでこの変数はイミュータブル(変更不可)となる。

let num1 = 10;
println!("num1: {}", num1);

可変(ミュータブル)にするには宣言に mut を付与する。

let mut num1 = 10;
println!("num1: {}", num1);
num1 = 20;
println!("num1: {}", num1);

結果

num1: 10                                                                                                                                                                                                              
num1: 20

変数は再宣言する事ができる。(シャドーイング)
以下のコードは前のコードと同じ結果を出力する。
https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html#shadowing

let num1 = 10;
println!("num1: {}", num1);
let num1 = 20;
println!("num1: {}", num1);

使用を誤るとバグの温床にもなりかねない機能だが、
イミュータブルに保ちたい変数を任意のブロック内で利用する際に、前の変数と同じ名前で新しい変数を宣言する事が出来る。等の利点がある。

fn main() {
    let x = 5;
    let x = x + 1;
    {
        let x = x * 2;
        println!("The value of x in the inner scope is: {x}");     // 12
    }

    println!("The value of x is: {x}");  // 6
}

関数

TODO:

制御構文

TODO:

範囲

TODO:

配列、スライス、Vector

TODO:

トレイト

TODO:

所有権

TODO:

借用とClone

TODO:

メモリの割り当てについて

TODO:

パッケージ、クレート、モジュール

TODO:

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-09-19 (火) 02:16:42 (251d)