golang同一包名无法调用另外一个文件的函数或类型

Demo1.go代码

package lib

import (
    "fmt"
)

func Test1() {
    fmt.Println("hello")
    Test2()
}

Demo2.go代码

package lib

import (
    "fmt"
)

func Test2() {
    fmt.Println("world")
}

结果demo1.go无法调用demo2.go文件中的Test2方法。我很疑问,或许是我包结构不符合标准。请大家纠正与解释。下图为包的结构

clipboard.png

阅读 34.2k
3 个回答

clipboard.png

main.go 代码:

package main

import "test/lib"

func main() {
    lib.Test1()
}

运行结果

hello
world

我自己备份一下答案吧。使用命令"go build ./"编译完成后,不是运行"go run main.go"而是运行编译生成的可执行文件(可执行文件与项目同名)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题