img := image.NewNRGBA(image.Rect(0, 0, width, height))
f, err := os.Create("image.png")
if err := png.Encode(f, img); err != nil {
f.Close()
log.Fatal(err)
}
img имеет тип NRGBA
f - File
почему в png.Ecode можно передать f? в доке написано, что первый параметр Encode - io.Writer
вопрос глупый, но не могу понять, как можно передать переменную другого типа.
мне тут сказали, что дело в имплементации и интерфейсах. но в доке я вообще не вижу, где задаётся имплемент.
тыкните, плиз
encode принимает writer, файл импелментит интерфейс
os.Create возвращает File https://godoc.org/os#Create File реализует метод Write https://godoc.org/os#File.Write Writer состоит из метода Write https://godoc.org/io#Writer Ты готур проходил?
Обсуждают сегодня