用golang封装一个包

2023-12-01

想象一个导出一些结构和一些函数的包。

如果我想围绕该包制作一个包装器,以便它可以用作插件,我是否应该重新创建嵌入旧结构的结构?例子:

package foo

type Foo struct {
    Field string
}

func DoSomething() {

}

package bar

import foo

type Foo struct {
    foo.Foo
}

func DoSomething() {
    foo.DoSomething()
}

有没有更好的办法?这是惯用的方式吗?


我想不是。只需使用原始包,如果你想使用自己的版本,可以使用别名。

假设目前您的代码是:

import (
    "abc.com/package/foo"
)

func CallFoo() {
    foo.DoSomething()
}

您可以通过别名 import 将 foo 替换为 bar,其他代码保持不变。

import (
    foo "abc.com/package/bar" // this is alias
)

func CallFoo() {
    foo.DoSomething()
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用golang封装一个包 的相关文章