reader 介面的定義如下:reader 方法type reader inte***ce
①呼叫.read方法func readfromsource(reader io.reader,num int)(byte,error)return p,err
}
// read 介面 入參 byte 陣列p ,返回 int型別 n 和 error// 翻譯文件:read入參長度大於len(p) 將返回0~len(p)和任何的錯誤。即使讀取的長度小於len(p),它會再呼叫的期間申請整個p長度的空間。如果有些資料是可用的,而不是len(p)位元組,read常規返回可用的資料,而不是等待更多的資料。如果在成功read了大於零的位元組過程發生了錯誤或者end-of-file情況。會返回non-nil或者在後續的呼叫返回錯誤。type reader inte***ce
②呼叫read方法func (b *buffer) read(p byte) (n int, err error)
return 0, io.eof // var eof = errors.new("eof") 返回 eof錯誤 和 int 0
}n = copy(p, b.buf[b.off:]) // func copy(dst, src type) int 呼叫複製方法 複製的特殊情況從string切片陣列
b.off += n // 複製到byte陣列中
if n > 0
return n, nil
}
go原始碼解讀(二)
solve the 2,3,5 problem print all numbers with 2,3,or 5 as factor using channels.使用通道解決2,3,5問題 以2 3或5為因子列印所有數字 test the solution,silently.測試解決方案。packa...
go中errgroup原始碼解讀
來看下errgroup的實現 func main eg.go func error if err eg.wait err nil 模擬於waitgroup,errgroup增加了乙個對goroutine錯誤收集的作用。不過需要注意的是 errgroup返回的第乙個出錯的goroutine丟擲的err...
go語言學習 go語言原始碼檔案
二 庫原始碼檔案 三 總結 原始碼檔案分為三種,即 命令原始碼檔案 庫原始碼檔案和測試原始碼檔案。命令原始碼檔案 庫原始碼檔案 測試原始碼檔案 1.1命令原始碼檔案介紹 package main import flag包用於接收和解析命令引數 flag fmt包含有格式化i o函式 fmt var ...