http://play.golang.org/p/Opb7pRFyMf
// func (f *File) Read(b []byte) (n int, err error)
record, err := reader.Read()在os包中是否定义了Read()函数?我正在尝试理解这段代码,但找不到Read()函数的定义位置……如果这是os包中的值,则返回记录变量的integer。但是为什么它能够打印出文本文件中的文本呢?
发布于 2018-10-22 19:29:55
Reader是包装基本Read方法的接口。
type Reader interface {
Read(p []byte) (n int, err error)
}Read方法接受一段字节作为参数并返回(number of bytes read, error)
myReader := strings.NewReader("This is my reader")
arr := make([]byte, 4)
for {
// n is number of bytes read
n, err := myReader.Read(arr)
if err == io.EOF {
break
}
fmt.Println(string(arr[:n]))
}输出:
This
is
my r
eade
rstring(arr[:n])将切片arr的内容转换为字符串。
要了解有关Read和io.Reader的更多信息,请参阅此article
https://stackoverflow.com/questions/19414427
复制相似问题