golang main包下main函数的问题

main 包下建立了两个go文件 package都为main
然后 在A.go 中 建立main方法
B.go中 建立一个SayHello() 这时 在A.go的main方法中 调用 B.go中的 SayHello() 会提示undefined: SayHello 这个是为什么呢 难道main包中只能建立一个go文件吗? 求解答困惑了好久

另外经过我自己的测试 除了main包下 我建立了几个其他名字的包 并在下面建立几个go文件 相互之间调用 都是没问题的 我使用的ide是 idea 和sublime2 都试过了一样的问题 golang菜鸟求帮助 谢谢

共 13 个回复


dxhdxh2k

假如:

A.go
----dir1
--------V.go

那你应该在A中这样 dir1.SayHello()。B.go的包名package dir1 当然,你B.go的包名package main时,应该和A.go在同一个目录

# 0

yufeng

别go run A.go 这时候需要用go build ./

# 1

jimmykuu

如果用go run命令运行的话,需要用go run *.go

# 2

yuanchangxing

多谢楼上,我刚刚遇到这个问题,已解决

# 3

wangxufire

stat .go: no such file or directory .go怎么报这个

# 4

jimmykuu

楼上,请描述清楚问题,怎么运行的,文件是怎样的?

# 5

wangxufire

指定具体的go文件可以运行

# 7

jimmykuu

在命令行里运行吧,别在 sublime 里运行。

# 8

suilongfei

个人认为

新手学语言的时候,最好是脱离各种ide,不要让各种工具代替自己去完成本来应该经历的过程。以免发生一些自己解释不了就认为是bug的事情。

# 9

FlashKnight

我见到很多程序员为了表明自己的“个性”,为各种IDE做宣传,而当他们真正工作的时候,却没有机会使用。这表明,还是需要一种“约束”来统一程序员的工作流程、代码风格、IDE等等,多人协作起来才不会产生各种浪费时间的问题

# 10

xicheng1000

刚好遇到这个问题,哈哈

# 11

loveforfun

多谢楼上,请问有人解释下原因么

# 12