Go Reader

1 개요[ | ]

Go Reader
Go
Copy
package main

import (
	"fmt"
	"io"
	"strings"
)

func main() {
	r := strings.NewReader("Hello, Reader!")

	b := make([]byte, 8)
	for {
		n, err := r.Read(b)
		fmt.Printf("n = %v err = %v b = %v\n", n, err, b)
		fmt.Printf("b[:n] = %q\n", b[:n])
		if err == io.EOF {
			break
		}
	}
}
Loading

2 제로값 탐구[ | ]

Go
Copy
package main

import (
	"bytes"
	"fmt"
	"io"
)

func main() {
	var reader io.Reader        // 리더 제로값(nil)
	fmt.Println(reader)         // <nil>
	fmt.Printf("%#v\n", reader) // <nil>

	reader = bytes.NewBuffer(nil) // nil에 대한 버퍼 리더
	fmt.Println(reader)           //
	fmt.Printf("%#v\n", reader)   // &bytes.Buffer{buf:[]uint8(nil), off:0, lastRead:0}

	reader = bytes.NewBuffer([]byte{})   // 바이트 슬라이스 제로값에 대한 버퍼 리더
	fmt.Println(reader)                  //
	fmt.Printf("%#v\n", reader)          // &bytes.Buffer{buf:[]uint8{}, off:0, lastRead:0}
	reader = bytes.NewBuffer([]byte("")) // 빈 문자열 바이트 슬라이스에 대한 버퍼 리더
	fmt.Println(reader)                  //
	fmt.Printf("%#v\n", reader)          // &bytes.Buffer{buf:[]uint8{}, off:0, lastRead:0}
}
Loading

3 같이 보기[ | ]