Golang中如何正确导入文件

Golang中如何正确导入文件 我想将另一个Go文件导入到我的main.go中 我的文件结构如下

-root
 --templ
 --main.go
 --others
   ---others.go

我想在我的main.go中导入others.go,但这个路径不起作用

import "others/others.go"
4 回复

你需要使用相对于 $GOPATHsrc 文件夹的完整路径。同时,指定包含文件夹就足够了。

更多关于Golang中如何正确导入文件的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


你可以在 Go 语言中进行相对导入,但这样就不能再使用来自 GOPATH 的限定导入。

建议将你的代码放在 Go 工作区中(即 $GOPATH/src)。

抱歉,如果我的GOPATH是C:\Users\Akezhan\go,工作空间是C:\Go\workSpace,这样可以吗? 我的GOROOT是C:\Go\,Path中是C:\Go\bin

在Go语言中,导入的是包(package)而不是具体的文件。根据你的文件结构,需要确保others.go文件声明了正确的包名,并在main.go中使用包路径进行导入。以下是正确的方法:

  1. others.go中定义包名(假设包名为others):
package others

// 示例函数
func GetMessage() string {
    return "Hello from others package"
}
  1. main.go中导入包
package main

import "root/others"  // 使用模块路径+包路径

func main() {
    msg := others.GetMessage()
    println(msg)
}
  1. 确保有正确的模块配置: 在项目根目录(root/)下需要有go.mod文件。如果尚未创建,运行:
go mod init root

关键点:

  • 导入路径基于模块名(go.mod中的模块名)+包目录路径
  • Go导入的是包目录,不是单个文件
  • 包内所有文件必须使用相同的包名

如果others.goothers目录中,导入路径应为"root/others"(假设模块名为root)。

回到顶部