如何导出一个名称,使其成为全局可访问的?

huangapple go评论87阅读模式
英文:

How to export a name so that it becomes globally accessible?

问题

我想从我的包中导出一个函数,这样我就可以在使用它时不需要在前面输入包名,如何做到这一点?

import "mypackage"

func main() {
   mypackage.myfunc()    // 这是我已经有的
   myfunc()              // 这是我需要的
}

要实现这个目标,你可以在mypackage包中的函数前面加上export关键字。这样,该函数就可以在导入该包的其他地方直接使用,而不需要输入包名。

package mypackage

export func myfunc() {
   // 函数的实现
}

这样,你就可以在其他地方直接调用myfunc(),而不需要输入包名了。

英文:

I want to export a function from my package so that I can use it without typing a package name before it, how to do that?

import "mypackage"

func main() {
   mypackage.myfunc()    <-- that's what I have already
   myfunc()              <-- that's what I need
}

答案1

得分: 4

你可以使用以下之一:

import (  
    .     "mypackage"                           // 不使用名称
    mp    "my/other/package"                    // 重命名
    _     "my/totally/diffrent/package"         // 仅为了副作用(初始化)而导入一个包
)

显然,这种模式并不推荐,因为它可能会与其他包发生名称冲突。

查看点导入公告

英文:

You can use one of the followings:

import (  
    .     "mypackage"                           // without a name  
    mp    "my/other/package"                    // rename
    _     "my/totally/diffrent/package"         // import a package solely for its side-effects (initialization)
)

Obviously, this pattern is not recommended since it can cause name conflicts with other packages.

Check out the dot imports bulletin

huangapple
  • 本文由 发表于 2017年2月27日 04:18:32
  • 转载请务必保留本文链接:https://go.coder-hub.com/42473739.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定