小编San*_*eth的帖子

如何在golang中实现不同包的接口?

我是golang的初学者,正在尝试接口.我想将接口保存在一个单独的包中,以便我可以使用它在各种其他包中实现它,也将它提供给其他团队(.a文件),以便他们可以实现自定义插件.请参阅下面的示例,了解我希望实现的目标.

--- Folder structure ---
gitlab.com/myproject/
                  interfaces/
                            shaper.go
                  shapes/
                        rectangle.go
                        circle.go

---- shaper.go ---
package interfaces

type Shaper interface{

    Area() int

}
Run Code Online (Sandbox Code Playgroud)

如何确保rectangle.go实现整形器接口?我明白go隐式实现接口,这是否意味着rectangle.go自动实现shaper.go即使它在不同的包中?

我尝试过如下,但是当我运行gofmt工具时,它会删除导入,因为它未被使用.

--- rectangle.go ---
package shapes

import "gitlab.com/myproject/interfaces"

type rectangle struct{

  length int
  width int
}

func (r rectangle) Area() int {
 return r.length * r.width
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

go

12
推荐指数
1
解决办法
1万
查看次数

在打开方式...上下文菜单中命名程序

如何在Windows XP和7 中的" 打开方式..."上下文菜单中自定义程序的名称?

例如:我在Windows上安装了3个名为XYZ的产品版本; .x文件与xyz.exe(COM注册)相关联.

该产品的所有版本都具有相同的.exe名称.现在,在Open With ...上下文菜单中,它显示XYZ程序3次(安装了3个版本),但名称相同.

如何让它显示版本?即XYZ V1.0,XYZ V2.0

windows registry open-with contextmenu windows-shell

6
推荐指数
1
解决办法
1714
查看次数

标签 统计

contextmenu ×1

go ×1

open-with ×1

registry ×1

windows ×1

windows-shell ×1