Golang中如何调用同一包不同文件的函数
Golang中如何调用同一包不同文件的函数 大家好,
我无法调用名为 foo 的函数,该函数位于我的 main 包中,但文件不同。这两个文件都在同一个 src 文件夹中。 代码已在截图中分享。

请问你能帮我解决这个问题吗?提前感谢!
5 回复
你试图运行一个文件中的代码,但你实际上有两个文件。
go run .\src\main.go .\src\foo.go
Deepak_Sharma: 这些文件在同一个 src 文件夹中。
也许文件夹结构应该是 src > main > foo.go + main.go ?
在Go中,同一包内的函数可以直接调用,无需导入。确保以下几点:
- 两个文件都在同一个包中(文件顶部都有
package main) - 函数名首字母大写(公开可见性规则)
- 文件在同一目录下
示例结构:
src/
├── main.go
└── utils.go
utils.go:
package main
func Foo() string { // 注意首字母大写
return "Hello from Foo"
}
main.go:
package main
import "fmt"
func main() {
result := Foo() // 直接调用
fmt.Println(result)
}
如果问题仍然存在,请检查:
- 两个文件是否都有
package main声明 - 函数名是否以大写字母开头
- 是否在正确的目录执行
go run main.go utils.go或go run .
运行命令:
go run main.go utils.go
或
go run .


