美文网首页
同个package包,文件间调用,报错undefined:

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

作者: fairy冉冉 | 来源:发表于2018-06-08 16:28 被阅读0次

    今天遇到个奇葩的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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/zieasftx.html