Помогите понять код
тут
https://golang.org/pkg/archive/zip/#Reader Для структуры Reader ниже дан пример.
// Open a zip archive for reading.
r, err := zip.OpenReader("testdata/readme.zip")
if err != nil {
log.Fatal(err)
}
defer r.Close()
// Iterate through the files in the archive,
// printing some of their contents.
for _, f := range r.File {
fmt.Printf("Contents of %s:\n", f.Name)
rc, err := f.Open()
if err != nil {
log.Fatal(err)
}
_, err = io.CopyN(os.Stdout, rc, 68)
if err != nil {
log.Fatal(err)
}
rc.Close()
fmt.Println()
}
но метод OpenReader возвращает структуру ReadCloser а не Reader, которая в свою очередь не имеет поля File []*zip.File (Reader имеет). Также в сорцах
https://golang.org/src/archive/zip/reader.go?s=583...
она объявлена как
type ReadCloser struct {
f *os.File
Reader
}
,
тогда почему
r, err := zip.OpenReader("testdata/readme.zip")
fmt.Printf("%T",r.Reader.File)
fmt.Println("");
fmt.Printf("%T",r.File)
fmt.Println("");
дают одинаковый результат? А именно:
[]*zip.File