golang go run undefined 同一个package中函数互相调用的问题

golang中同一个package中函数互相调用的问题

同一个packge中(test)

a.go

package main

func main(){
    Test()
}

b.go

package main

import "fmt"

func Test(){
    fmt.Println("Hello gopher!")
}

编译的结果如下:

D:\goWork\src\test>go run a.go
# command-line-arguments
.\a.go:4:2: undefined: Test

正常来说同一个package下,函数是可以相互调用的,不应该报错, 出现这种问题的原因是没有对这个package整体进行编译, 也就是说只编译了部分:

找到了问题,针对进行解决就可以了, 只要找到可以整体编译的方法就可以了,我试过可行的几种如下:

命令行:

  1. 多个.go文件一起编译运行
D:\goWork\src\test>go run a.go b.go
Hello gopher!
  1. 直接运行这个package
D:\goWork\src\test>go run ./
Hello gopher!

Goland

修改:Configuration

  1. 把Run kind 改为 Directory


    Snipaste_2019-01-14_21-04-55.png

    Snipaste_2019-01-14_20-47-08.png
  2. 找到package包所在的路径, 同时为这个Configuration取一个名字


    Snipaste_2019-01-14_20-53-39.png
  3. 在左上角选中的的Configuration, 点击左侧的按钮运行


    Snipaste_2019-01-14_20-54-13.png
Snipaste_2019-01-14_20-55-50.png

结果就正常了!

Hello gopher!

Process finished with exit code 0

觉得有所帮助的话,点个赞呗!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,626评论 1 32
  • 3.1. 介绍 现在,您已经安装了Wireshark并有可能热衷于开始捕捉您的第一个数据包。在接下来的章节中,我们...
    wwyyzz阅读 1,489评论 0 1
  • 2016年国庆假期终于把此书过完,整理笔记和体会于此。 关于书名 书名源于俄罗斯的演员斯坦尼斯拉夫斯基创作的《演员...
    李剑飞的简书阅读 7,445评论 2 65
  • 秋日的莲花水乡 秋日观荷(一) 独立寒秋傲霜天, 浮华褪尽亦香甜。 凡尘不染真君子, 无欲无求品质坚。 秋日观荷(...
    罗哥阅读 619评论 3 2
  • 说心里话,信用卡是真的不应该存在的,有什么意义?你花了多少钱就要还多少钱,在自己的能力范围之内,那也是要控制控制的...
    笑傲江湖201710阅读 198评论 0 0

友情链接更多精彩内容