重命名类型后,我无法访问其某些方法

为了防止在我的项目的不同文件中存在多个依赖项,并且由于我可能会改变数据的呈现方式,我决定为draw2d 包创建一个“接口”(不是在 golang 意义上,而是在架构方式中)


由于我不需要其他任何东西,我只是重命名了其中一种类型:


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()

}

为什么我只需要重新定义一个而不是任何其他调用?


缥缈止盈
浏览 139回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go