Go語言中Reader接口定義了一個Read操作,實現(xiàn)了Reader接口的都有Read這個函數(shù)。 (推薦學習:go)
接口的定義如下:
type Reader interface { Read(p []byte) (n int, err error) }
一次Read調(diào)用最多讀取len(p)字節(jié)的數(shù)據(jù)到緩沖區(qū)p中
n表示這一次實際讀取到字節(jié)數(shù),(0 <= n <= len(p))
err 表示這次讀取操作的報錯(如果有的話,沒有則是nil)
即使讀取到的字節(jié)數(shù)n小于len(p),在函數(shù)調(diào)用過程中調(diào)用主體也可能使用全部的p的空間(不知道這個說明是想表達什么)
當read到數(shù)據(jù)的時候,即使不夠len(p)(此時IO緩存中沒有數(shù)據(jù)了),Read操作通常會直接返回獲取到的數(shù)據(jù)而不是繼續(xù)等待IO緩存中到達