英文:
How to import a single go file in golang? Unable to import go file
问题
尝试导入一个Go文件,但无法成功。
我有一个主文件:
main/
main.go
go_single_file.go
package main
import (
"./go_single_file"
)
func main() {
}
还有一个go_single_file
文件:
package go_single_file
func hello() bool {
return true
}
当我尝试在主文件中导入go_single_file
时,出现了某种导入错误。
我可能做错了什么,但不确定是什么。
如果我创建一个单独的包并导入它,那么它可以正常工作,但如果它们在同一个文件夹中就不行。
有人能告诉我如何从同一个文件夹中导入一个Go文件吗?
英文:
Trying to import a file go file but unable to do so.
I have one main file:
main/
main.go
go_single_file.go
package main
import (
"./go_single_file"
)
func main() {
}
and go_single_file
:
package go_single_file
func hello() bool{
return true
}
when i try to import go_single_file
in my main file i get some sort of import error.
I am doing something wrong but not sure what.
If i make a separate package and import it then it works but not if it's in same folder.
Can anyone tell how can i import a go file from same folder.
答案1
得分: 6
在Golang中,文件被组织成称为包的子目录,这样可以实现代码的可重用性。
Go包的命名约定是使用我们放置Go源文件的目录的名称。在单个文件夹中,属于该目录的所有源文件的包名称将相同。
我建议您使用Go模块,并且您的文件夹结构应该像这样。
.
├── main.go
├── go.mod
├── go_single_file
│ └── go_single_file.go
在您的go_single_file.go文件中,您没有为函数hello使用导出名称。因此,您的go_single_file/go_single_file.go
文件将如下所示。
package go_single_file
func Hello() bool{
return true
}
您的主文件将如下所示
package main
import (
"module_name/go_single_file"
)
func main() {
_ = go_single_file.Hello()
}
英文:
In Golang files are organized into subdirectories called packages which enables code reusability.
The naming convention for Go package is to use the name of the directory where we are putting our Go source files. Within a single folder, the package name will be same for the all source files which belong to that directory.
I would recommend you to use go modules and your folders structure should be like this.
.
├── main.go
├── go.mod
├── go_single_file
│ └── go_single_file.go
In your go_single_file.go you are not using exported names for the function hello. So your file inside the go_single_file/go_single_file.go
would look like this.
package go_single_file
func Hello() bool{
return true
}
Your main file would like this
package main
import (
"module_name/go_single_file"
)
func main() {
_ = go_single_file.Hello()
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论