同个package包,文件间调用,报错undefined:

今天遇到个奇葩的bug。

我的工程项目是demo1,里面有3个文件,分别是main.go、Block.go、BlockChain.go,这哥仨同属main包。

其中,BlockChain.go 中,定义了一个函数 NewBlockChain(),然后我在 main.go 文件的 main 函数中,调用这个NewBlockChain() 函数。那么,问题来了。当我在 Goland 中运行 main.go 文件的时候,报错: undefined: NewBlockChain,what?黑人问号脸。

同个package中,不同的 .go 文件,它们之间函数应该是可以相互调用的才对,(main函数除外),那为什么会报错?
查了查资料,这是由于BlockChain.go 文件未被编译导致的。这就怪了,运行 main.go 文件的时候,Goland 不应该自动把 main.go 文件中,所使用到的BlockChain.go ,也给编译了么?

百思不得其解,暂且归根于Goland 出bug了。

下面讲讲遇到这种情况怎么破?使用命令行。

1、打开命令行工具:
1.png

2、先使用 pwd 命令,查看当前工作路径;
3、再使用 ls 命令,查看当前工作路径下的文件;

4、最后用 go run *.go 命令,编译当前路径下所有的 .go 文件,至此,顺利运行。
2.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,498评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,067评论 19 139
  • 今日的雅安依旧是云雾缭绕,微风四起,却也算得上是适合出行茶村的好日子,可闻闻以雨沏茶的幽香。 3路公交车驶向尾站,...
    小苏尔阅读 533评论 5 7
  • 内心静定,是归处 红蔚 俗世生活总是庸庸碌碌。庸庸碌碌里,内心波澜起伏。 作为一个女人,上有父母待孝,下...
    红蔚阅读 607评论 3 10
  • 海伟昨天说想在大路边上开个小店 海伟今天说算了 风景和风景 虽说相看两不厌 但总归没有交叉线
    缺耳阅读 289评论 0 0