// 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打開文件是什麼星號(*結構)符號在golang
dictFile, err := os.Open(file)
我要去dicFile傳遞給
reader := bufio.NewReader(dictFile)
我發現底層代碼使用func NewReaderSize
,但我不明白的是rd.(*Reader)
。 Reader
是包bufio
中包含的結構類型。星號跟着一個結構是從我看到的從指針Reader
得到的值,但它不是一個指針,所以它沒有任何意義。此外,它使用點運算符rd.(*Reader)
,我完全糊塗了。第47行中這種用法的含義是什麼?它是什麼樣的符號?