0

演習 7.5:パッケージ内
LimitReader関数はと バイト数をio受け取り、バイトの後にファイルの終わりの状態を報告するが、別のものを返します。実装します。io.Reader rnReaderrn

func LimitReader(r io.Reader, n int64) io.Reader

それを実装する方法は?


以下は私のコードです。正しくないことはわかっています。

type MyReader struct {
    bytes []byte
    length int
}

func (myReader *MyReader) Read (p []byte) (int, error) {
    fmt.Println("be invoked")
    myReader.bytes = p
    myReader.length = len(p)
    fmt.Printf("lenght: %d\n" , myReader.length)
    return len(p), nil
}
func LimitReader(r io.Reader, n int64) io.Reader {
    filecontent, _:= ioutil.ReadFile("./testfile.txt")
    r.Read(filecontent[:n])
    return r
}

func main() {
    myReader := &MyReader{}
    r := LimitReader(myReader, 100)
    filecontent, _:= ioutil.ReadFile("./testfile.txt")
    fmt.Println(r.Read(filecontent))
}
4

1 に答える 1