我刚刚学习 Go 并编写了以下 struct( 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)
}
如果我只是 importimage/color
而不是 import image
,image.Rect
则未定义。为什么?不应该image/color
已经涵盖的方法和属性image
?
此外,如果我将函数接收器从 更改(img Image)
为(img *Image)
,则会出现错误:
Image does not implement image.Image (At method requires pointer receiver)
这是为什么?不(img *Image)
表示指针接收器?