golang 同一个包下func引用问题

hljdxjiang · 2017-06-01 09:36:27 · 4706 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-06-01 09:36:27 的主题,其中的信息可能已经有所发展或是发生改变。

两个go文件 TestMain.go

package main

import "fmt"

func main() {
    fmt.Println("a")
    Test1()
}

TestFunc.go

package main

import "fmt"

func Test1() {
    fmt.Println("test1")
}

为什么执行 go run TestMain.go使报错,undefined: Test1

以前在1.7的时候好像不报错。为什么到1.8.3就有问题了?求助一哈


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4706 次点击  
加入收藏 微博
11 回复  |  直到 2017-07-14 09:18:00
abin
abin · #1 · 8年之前

用这个命令 go run TestMain.go TestFunc.go

BruceAuyeung
BruceAuyeung · #2 · 8年之前

GOPASH设置不对

hljdxjiang
hljdxjiang · #3 · 8年之前
abinabin #1 回复

用这个命令 go run TestMain.go TestFunc.go

这个方式是可以执行的。可是如果 写了很多的go 不能总这么着执行吧?

hljdxjiang
hljdxjiang · #4 · 8年之前
BruceAuyeungBruceAuyeung #2 回复

GOPASH设置不对

gopath: E:\Program\GOLang 代码在src目录下。 以前即使是在golang目录下,随便见一个文件夹也是可以执行的啊?

abin
abin · #5 · 8年之前

@hljdxjiang 可以将多个go文件放在同一个目录下。 go run 不带参数默认执行当前目录下所有文件,可以使用go help run 查看命令使用方法

sheepbao
sheepbao · #6 · 8年之前

go run *.go

hljdxjiang
hljdxjiang · #7 · 8年之前
sheepbaosheepbao #6 回复

go run *.go

找到原因了!!除了main包外…其他包都可以自己引用自己包的内容!!!事情的真相变成这个样子了!!谢谢啊

sunailong
sunailong · #8 · 8年之前
hljdxjianghljdxjiang #7 回复

#6楼 @sheepbao 找到原因了!!除了main包外…其他包都可以自己引用自己包的内容!!!事情的真相变成这个样子了!!谢谢啊

什么意思啊,我也遇到这个问题了,是要写到一个go文件里吗

hljdxjiang
hljdxjiang · #9 · 8年之前
sunailongsunailong #8 回复

#7楼 @hljdxjiang 什么意思啊,我也遇到这个问题了,是要写到一个go文件里吗

就是 多个文件在main包下 不能相互调用,但是飞main包下 就可以相互调用!

farmerx
farmerx · #10 · 8年之前

你卸载一个文件里就不会报错了,或者gobuild 完在运行, 当然上面说的也可以

hljdxjiang
hljdxjiang · #11 · 8年之前
farmerxfarmerx #10 回复

你卸载一个文件里就不会报错了,或者gobuild 完在运行, 当然上面说的也可以

写一个文件里 自然是没啥问题的。go build还没研究到

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传