這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
介面定義-基本介面
//-----------------------------------------------------------------------------//===================================基本介面===================================//-----------------------------------------------------------------------------// Reader 介面用來輸出自己的位元組資料。只有一個鴨子方法Read。// 參數p:將對象的資料流讀入到 p 中,p是調用方準備用來盛放資料的[]byte。// 傳回值:// 1 如果已讀到了資料(n > 0) 則 err = nil// 2 如果沒有資料可讀(n = 0) 則 err = io.EOF// 3 如果發生讀取錯誤(n = _) 則 err = other errorstype Reader interface { Read(p []byte) (n int, err error)}// Writer 介面用於將資料寫入自身。只有一個鴨子方法Write。// 參數p:將p中的資料寫入到對象中,p是調用方準備的資料。// 傳回值:// 1 如果資料全部被寫入(n = len(p)),則 err = nil// 2 如果資料無法被全部寫入(n = 寫入了的位元組數),則 err = other errorstype Writer interface { Write(p []byte) (n int, err error)}// Closer 介面用於關閉資料讀寫控制代碼。只有一個鴨子方法Close。type Closer interface { Close() error}// Seeker 介面用於移動資料的讀寫指標。只有一個鴨子方法Seek。跟C語言一樣。// 參數whence:// 如果 whence 為 0:表示從資料的開頭開始移動指標。// 如果 whence 為 1:表示從資料的當前指標位置開始移動指標。// 如果 whence 為 2:表示從資料的尾部開始移動指標。// 參數offset:// 是指標移動的位移量(理論上是可以正負值的,當然有些流是不支援的。)。// 傳回值:// 返回新指標位置 和 遇到的錯誤。type Seeker interface { Seek(offset int64, whence int) (ret int64, err error)}//-----------------------------------------------------------------------------//=================================基本組合介面=================================//-----------------------------------------------------------------------------