We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 683a57a commit 53a9124Copy full SHA for 53a9124
kadai2/tanaka0325/README.md
@@ -8,3 +8,18 @@
8
- io.Readerとio.Writerがあることでどういう利点があるのか具体例を挙げて考えてみる
9
```
10
11
+### io.Readerとio.Writerについて調べてみよう
12
+
13
+#### 標準パッケージでどのように使われているか
14
15
+身近なものでいうと `fmt` の `Fprint` 系の関数は `io.Writer` を引数にとり、そこに対して書き込みを行っている。
16
+例えば `Println` は `io.Writer` として `os.Stdout` を `Fprintln` に渡して処理を行っている。
17
18
+標準バッケージでは上記のほかにも、画像やファイルやhttpのリクエスト/レスポンスなど「何か読み書きできるやつ」を抽象化して扱えるように `io.Reader`, `io.Writer` が使われている。
19
20
+#### io.Readerとio.Writerがあることでどういう利点があるのか具体例を挙げて考えてみる
21
22
+- 「読み書きできるやつ」と抽象化することができるので、例えば書き込みをする関数を1つ作れば複数の構造体に対応できる
23
+ - `io.Writer` がない場合、「ファイルに対して書き込みする関数」「画像に対して書き込みする関数」のように構造体ごとに関数を準備しなくてはならない
24
+- 抽象化することにより、具体的な構造体に依存しなくなるため、テスト時に差し替えることができモックなどでテストがしやくすなる
25
+ - 例えば画像を扱うテストをしたい時に、実際に画像を準備する必要がない
0 commit comments