I found lots of code snippets like r.(flate.Reader)
in golang's zlib/reader.go file. What does it mean?
https://golang.org/src/compress/zlib/reader.go
func (z *reader) Reset(r io.Reader, dict []byte) error {
if fr, ok := r.(flate.Reader); ok {
z.r = fr
} else {
z.r = bufio.NewReader(r)
}
// more code omitted ...
}
P.S. source code of io
and flate
.
io: https://golang.org/src/io/io.go
flate: https://golang.org/src/compress/flate/inflate.go