这是我的代码示例:
package main import ( "./bio" ) func main() { bio.PeptideEncoding(genome, codonTable) }
是否可以使用我的paxkage(bio)中的函数而无需指定包名称:
func main() { PeptideEncoding(genome, codonTable) }
?
您可以将其用作导入声明,例如:
. "./bio"
如果出现显式的句号(.)而不是名称,则在该软件包的package块中声明的所有软件包导出的标识符都将在导入源文件的file块中声明,并且 必须在不使用限定符的情况下进行访问 。
.
这就是像govey这样的测试框架所做的:
package package_name import ( "testing" . "github.com/smartystreets/goconvey/convey" ) func TestIntegerStuff(t *testing.T) { Convey("Given some integer with a starting value", t, func() { x := 1 Convey("When the integer is incremented", func() { x++ Convey("The value should be greater by one", func() { So(x, ShouldEqual, 2) }) }) }) }
您不需要使用convey.So(),或者convey.Convey()由于导入以’开头.。
convey.So()
convey.Convey()
但是请不要滥用它,因为正如twotwotwo注释那样 在测试之外不鼓励使用它。
除这种情况外,请勿import .在程序中使用。 由于不清楚Quux之类的名称是否是当前包或导入包中的顶级标识符,因此使程序更难阅读。
import .
这就是为什么我提到了使用这种技术的 测试 框架。
正如Simon Whitehead所评论的那样,通常不认为使用 相对导入 是最佳实践(例如,参见“ Go语言包结构