// NewReaderSize returns a new Reader whose buffer has at least the specified
43 // size. If the argument io.Reader is already a Reader with large enough
44 // size, it returns the underlying Reader.
45 func NewReaderSize(rd io.Reader, size int) *Reader {
46 // Is it already a Reader?
47 b, ok := rd.(*Reader)
48 if ok && len(b.buf) >= size {
49 return b
50 }
51 if size < minReadBufferSize {
52 size = minReadBufferSize
53 }
54 r := new(Reader)
55 r.reset(make([]byte, size), rd)
56 return r
57 }
当我使用 os.Open 打开文件时
dictFile, err := os.Open(file)
我要将 dicFile 传递给
reader := bufio.NewReader(dictFile)
我发现底层代码正在使用 func NewReaderSize,但我无法理解的是rd.(*Reader). Reader是包中包含的结构类型bufio。星号后跟一个结构体是我看到的从指针中获取值的内容Reader,但它不是指针,因此没有意义。此外,它使用点运算符rd.(*Reader),我完全感到困惑。第47行的这种用法是什么意思?它是一种什么样的符号?
慕姐8265434
慕运维8079593
相关分类