レッスンを最初から読み直さずに、さっと確認したいことをまとめた早見表です。各セクションから、くわしく説明しているページへリンクしています。
| メソッド |
動作 |
.len() |
バイト単位の長さ |
.trim() |
前後の空白を取り除く |
.to_uppercase() / .to_lowercase() |
大文字・小文字に変換する |
.contains(pat) |
部分文字列やパターンが含まれているか |
.replace(from, to) |
一致する部分をすべて置き換える |
.push_str(s) |
&str を末尾に追加する |
.push(c) |
char を1文字だけ末尾に追加する |
.chars() |
1文字ずつ順に取り出す |
.split(pat) |
区切って、部分文字列のイテレータにする |
.parse::<T>() |
テキストを別の型に変換する(Result を返す) |
くわしい説明と例は文字列のページを見てください。
| メソッド |
動作 |
.push(x) |
末尾に追加する |
.pop() |
最後の要素を取り除いて返す(Option) |
.remove(i) |
インデックス i の要素を取り除く |
.len() |
要素の数 |
.is_empty() |
要素が1つもないか |
.get(i) |
インデックスで安全に取り出す(Option を返し、パニックしない) |
.iter() |
参照で順に取り出す |
.contains(&x) |
値が含まれているか |
.sort() |
その場で並べ替える |
.sort_by_key(|x| ...) |
フィールドや計算したキーで並べ替える |
.dedup() |
連続する重複を取り除く(先に並べ替えておく) |
くわしい説明と例はベクタ、並べ替えと検索、イテレータのページを見てください。
| 型 |
こんなときに使う |
Vec<T> |
順番があり、伸び縮みするリストがほしい |
HashMap<K, V> |
キーから値をすばやく探したい |
HashSet<T> |
重複のない要素を持ち、「これは入っている?」をすばやく調べたい |
BTreeMap<K, V> |
キーと値のペアを、キーの順に並べて持ちたい |
VecDeque<T> |
キューがほしい(両端で追加・取り出しができる) |
くわしい説明と例はHashMapとHashSetとBTreeMapのページを見てください。
| メソッド |
使える型 |
動作 |
.unwrap() |
両方 |
値を取り出す。None/Err ならパニックする |
.expect("msg") |
両方 |
.unwrap() と同じだが、パニック時のメッセージを指定できる |
.unwrap_or(default) |
両方 |
値を取り出す。なければ代わりの値を使う |
.is_some() / .is_none() |
Option |
どちらのバリアントかを調べる |
.is_ok() / .is_err() |
Result |
どちらのバリアントかを調べる |
? |
両方 |
None/Err なら、その場で早めに return する |
くわしい説明と例はOptionとResultのページを見てください。
| 指定子 |
表示されるもの |
{} |
通常の表示(Display トレイトが必要) |
{:?} |
デバッグ表示 |
{:#?} |
見やすく整形したデバッグ表示 |
{:.2} |
小数点以下2桁 |
{:5} |
幅5になるように空白で埋める |
{name} |
name という変数をその場に埋め込む |
くわしい説明と例は出力のページを見てください。
| コマンド |
動作 |
cargo new name |
新しいプロジェクトを作る |
cargo run |
ビルドして実行する |
cargo check |
ビルドせずに、すばやくエラーをチェックする |
cargo test |
テストを実行する |
cargo add crate |
依存クレートを追加する |
cargo fmt |
コードを整形する |
cargo clippy |
よくあるミスがないかコードをチェックする(リント) |
cargo build --release |
最適化したバイナリをビルドする |
くわしい説明と例はCargoとクレートのページを見てください。
| 書き方 |
意味 |
1..5 |
1から5の手前まで(5は含まない) |
1..=5 |
1から5まで(5を含む) |
..3 |
最初から3の手前まで(3は含まない) |
2.. |
2から最後まで |
.. |
すべて |
くわしい説明と例はforとスライスのページを見てください。
どれも cargo add <クレート名> で追加できます。よいクレートの選び方はCargoとクレートを見てください。