0
0

More than 3 years have passed since last update.

【Go】io.Writerについて見てみる

Posted at

Goのio.Writer interfaceについて調べました。

io.Writerとは

io.Writer は以下のようなinterfaceです。

type Writer interface {
    Write(p []byte) (n int, err error)
}

writeメソッドを持ちます。

色んなwriteメソッドを見かける

  • ファイルの入出力
  • connectionへの書き込み
  • バッファへの書き込み

など色々なwriteメソッドがあります。

これは上記のwriteメソッドをfileやTCPConn,Bufferで実装しているので
それぞれのファイル に関して書き込みが可能です。

ファイルという考え方

先ほど、 ファイル という言い回しをしましたが、 ファイルディスクリプター というものがあります。
これは、 OSがカーネルのレイヤーで用意している抽象化の仕組み です。
具体的には、数値の識別子のようなもので

  • 0:標準入力
  • 1:標準出力
  • 2:標準エラー出力

のように数値ごとに対応するものが決まっています。

この対応するものが、ファイルだけでなくソケットなど様々なものがあります。
ただ、どれもファイルと同じようにアクセスし書き込むことができるので、
ファイルという考えで抽象化しています。

この io.Writerはファイルディスクリプターを模倣しGo言語で実装したようなものとなっています。

参考記事

ありがとうございました。
- 低レベルアクセスへの入り口(1):io.Writer

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0