Go 有没有可能don';不指定包名?

Go 有没有可能don';不指定包名?,go,Go,下面是我的代码示例: package main import ( "./bio" ) func main() { bio.PeptideEncoding(genome, codonTable) } 是否可以在不指定包名的情况下使用my paxkage(bio)中的函数: func main() { PeptideEncoding(genome, codonTable) } ?您可以像这样使用: 如果出现显式句点()而不是名称,则在该包的包块中声明的所有包的导出标识符将在导

下面是我的代码示例:

package main

import (
  "./bio"
)

func main() {
   bio.PeptideEncoding(genome, codonTable)
}
是否可以在不指定包名的情况下使用my paxkage(bio)中的函数:

func main() {
   PeptideEncoding(genome, codonTable)
}

您可以像这样使用:

如果出现显式句点(
)而不是名称,则在该包的包块中声明的所有包的导出标识符将在导入源文件的文件块中声明,并且必须在不使用限定符的情况下访问

这是一个很好的例子:

您不需要使用
transfer.So()
,或
transfer.transfer()
,因为导入以“
”开头

但是不要滥用它,因为,不鼓励在测试之外使用它

除此情况外,不要在程序中使用导入。。
它使程序更难阅读,因为不清楚像Quux这样的名称是当前包中的顶级标识符还是导入包中的顶级标识符

这就是我提到使用这种技术的测试框架的原因


与之前一样,使用相对导入通常不被视为最佳实践(例如,请参见“”)


您还应该通过
GOPATH
而不是相对导入包,如“.

@SimonWhitehead true”所示。我对答案进行了编辑,以指出有问题的导入用法。样式指南不鼓励在测试之外使用它:@twoo确实如此。我已将您的评论包含在答案中,以提高可视性。
. "./bio"
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)
            })
        })
    })
}