gpt4 book ai didi

go - 可以不指定包名吗?

转载 作者:IT王子 更新时间:2023-10-29 00:52:37 24 4
gpt4 key购买 nike

这是我的代码示例:

package main

import (
"./bio"
)

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

是否可以在不指定包名称的情况下使用我的 paxkage (bio) 中的函数:

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

?

最佳答案

您可以用作 import declaration喜欢:

. "./bio"

If an explicit period (.) appears instead of a name, all the package's exported identifiers declared in that package's package block will be declared in the importing source file's file block and must be accessed without a qualifier.

那是一个testing framework like govey does :

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() 因为导入以 '. '.

不过不要滥用它,因为,作为 twotwotwo comments , <强> style guide 在测试之外不鼓励它。

Except for this one case, do not use import . in your programs.
It makes the programs much harder to read because it is unclear whether a name like Quux is a top-level identifier in the current package or in an imported package.

这就是为什么我提到使用这种技术的测试框架。


作为commented通过 Simon Whitehead , 使用 relative import 通常不被认为是最佳实践(例如参见“Go language package structure”)。

您还应该通过 GOPATH 而不是相对导入包,如“Import and not used error ”所示。

关于go - 可以不指定包名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26816151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com