为了防止项目的不同文件存在多个依赖关系,并且由于我可能会更改数据的呈现方式,我决定为绘制2D包 https://github.com/llgcode/draw2d
由于我不需要其他任何东西,我只是重命名了其中一种类型:
type CanvasContext draw2dimg.GraphicContext
在我的一个模块中,我有以下代码(路径是 CanvasContext 变量):
// initialization and some code omitted for clarity
path.SetFillColor(color.RGBA{0x44, 0xff, 0x44, 0xff})
path.SetStrokeColor(color.RGBA{0x44, 0x44, 0x44, 0xff})
path.SetLineWidth(5)
// some more code here
path.Close()
path.FillStroke()
在路径上的所有这些方法调用中,只有 FillStroke 因编译错误而失败:
path.FillStroke 未定义(类型 *drawing.CanvasContext 没有字段或
方法 FillStroke)
为了防止这种情况,我必须重新定义 FillStroke,而不是任何其他方法,方法是:
func (cc *CanvasContext) FillStroke() {
gc := draw2dimg.GraphicContext(*cc)
gc.FillStroke()
}
为什么我只需要重新定义该调用而不需要重新定义任何其他调用?