Golang中如何调用同一包不同文件的函数

Golang中如何调用同一包不同文件的函数 大家好,

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

Screenshot (186)

请问你能帮我解决这个问题吗?提前感谢!

5 回复

感谢大家,现在可以正常工作了。

更多关于Golang中如何调用同一包不同文件的函数的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


你好

你也可以在主包中运行:

go run .

你试图运行一个文件中的代码,但你实际上有两个文件。

go run .\src\main.go .\src\foo.go 

Deepak_Sharma: 这些文件在同一个 src 文件夹中。

也许文件夹结构应该是 src > main > foo.go + main.go ?

在Go中,同一包内的函数可以直接调用,无需导入。确保以下几点:

  1. 两个文件都在同一个包中(文件顶部都有 package main
  2. 函数名首字母大写(公开可见性规则)
  3. 文件在同一目录下

示例结构:

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.gogo run .

运行命令:

go run main.go utils.go

go run .
回到顶部