or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Rust勉強会 第12回
12章 入出力プロジェクト 後半
2020/10/23 岡本拓海
本日のメニュー
プレゼン20分くらい+議論10分位で18:30前後終了を目指します。
テスト駆動開発でライブラリの機能を開発する
前回
minigrepクレートを作成してちょっとしたRustのプロジェクトを作りました。
テストを書いてみよう!!
#[cfg(test)]
でテストモジュールの定義#[test]
でユニットテストを記述できますsearch関数の最低限の実装
テストを走らせてみよう
想定どおりテストは失敗しましたね!!
テストを通過させるコードを書く
実装する操作は以下の通り
テストを通過するコード
再度テスト
成功しました!!
環境変数を取り扱う
環境変数を取り扱うのには
std::env
を使用します環境変数を使用した場合のテスト
search_case_insensitive関数を実装する
実行する
標準出力ではなく、標準エラー出力にエラーメッセージを書き込む
プログラムの正常な出力以外のエラーなどが表示されることを避けたい場合があります。
例えば、リダイレクトで結果をファイルに保存した場合等
現行のプログラムではpanicした内容も出力されてしまうのでエラー出力に出力しましょう。
eprintln!マクロで標準エラー出力に書き込む
eprintln!マクロを使うことで標準エラー出力に書き込むことができます。
参考資料
https://doc.rust-jp.rs/book-ja/ch12-00-an-io-project.html
ご清聴ありがとうございました