2
我剛剛學習Go並寫了下面的結構(Image
)來實現image.Image
接口。爲什麼我必須導入「圖像/顏色」和「圖像」?
package main
import (
"image"
"image/color"
"code.google.com/p/go-tour/pic"
)
type Image struct{}
func (img Image) ColorModel() color.Model {
return color.RGBAModel
}
func (img Image) Bounds() image.Rectangle {
return image.Rect(0, 0, 100, 100)
}
func (img Image) At(x, y int) color.Color {
return color.RGBA{100, 100, 255, 255}
}
func main() {
m := Image{}
pic.ShowImage(m)
}
如果我只需要導入image/color
,而不是導入image
,image.Rect
是不確定的。爲什麼?不應該image/color
已經涵蓋了image
的方法和屬性?
另外,如果我改變從(img Image)
功能接收器(img *Image)
,錯誤出現了:
Image does not implement image.Image (At method requires pointer receiver)
這是爲什麼? (img *Image)
是否指示指針接收器?