はじめに
#NO IMAGEThe Rust Programming Language 日本語版 - The Rust Programming Language 日本語版
を読んでいる
- 立川のゲームバーに行こうとしている
お勉強
#メモ
#NO IMAGEリファクタリングしてモジュール性とエラー処理を向上させる - The Rust Programming Language 日本語版
-
これからやる
-
run関数内で利用するところから
-
ん?機能実装した場所またなくなってるな、pushしたはずだが
-
なおしたが、Configのstructの定義が
Stringなのにsearchの定義がstrになってるな -
借用しなきゃだめか
-
自分の記述みすだったが、借用じゃなきゃだめだなって所に気がつけた
- やったぜ
-
grepができてそうなので実行する
❯ cargo run frog poem.txt
Compiling minigrep v0.1.0 (/Users/r-aizawa/Repository/minigrep)
warning: unused import: `std::vec`
--> src/lib.rs:4:5
|
4 | use std::vec;
| ^^^^^^^^
|
= note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
warning: `minigrep` (lib) generated 1 warning (run `cargo fix --lib -p minigrep` to apply 1 suggestion)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.28s
Running `target/debug/minigrep frog poem.txt`
How public, like a frog
- 上手に動いてそうだ
- 使っていないimportもある
❯ cargo run body poem.txt
warning: unused import: `std::vec`
--> src/lib.rs:4:5
|
4 | use std::vec;
| ^^^^^^^^
|
= note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
warning: `minigrep` (lib) generated 1 warning (run `cargo fix --lib -p minigrep` to apply 1 suggestion)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.00s
Running `target/debug/minigrep body poem.txt`
I'm nobody! Who are you?
Are you nobody, too?
How dreary to be somebody!
- 複数マッチの場合
- いいじゃーーん
NO IMAGE環境変数を取り扱う - The Rust Programming Language 日本語版
- 環境変数きた
- goでもstructを使ったイメージ
おまけの機能を追加してminigrepを改善します: 環境変数でユーザがオンにできる大文字小文字無視の検索用のオプションです
- たしかに
#[test]
fn case_insensitive() {
let query = "rUsT";
// (最後の行のみ)
// 私を信じて
let contents = "\
Rust:
safe, fast, productive.
Pick three.
Trust me.";
assert_eq!(
vec!["Rust:", "Trust me."],
search_case_insensitive(query, contents)
);
}
}
- このテストを書かされた
- 多分引数は同じなのでこう!!
fn search_case_insensitive<'a>(query: &str, contents: &'a str) -> Vec<&'a str> {
vec![]
}
まとめ
#- だいぶ馴染んできた
- 今回もTDDでメソッドの憶測をした
- 明日やるところで答え合わせをする
次ここ