2018-07-07——Go语言package踩坑

go语言中main包是特殊的。

一般的包名是包含一些.go文件的目录名,如下图所示:

main包

图中hello文件夹即为hello包。包内可包含一些.go文件,日下图所示:


hello包

编译器会将同一目录下的不同.go文件视作同一个包。

但是main包的目录不是main目录,如果想在main包中添加函数建议写在main函数所在的.go文件中。
因为多个.go文件在main包下是无法相互调用的!!!
因为多个.go文件在main包下是无法相互调用的!!!
因为多个.go文件在main包下是无法相互调用的!!!

最好的方法是创建另一个包(如上图的hello包),由main函数调用,如下图所示:

main函数调用hello包中的函数

go 里面一个目录为一个package, 一个package级别的func, type, 变量, 常量, 这个package下的所有文件里的代码都可以随意访问, 也不需要首字母大写,如下图:

hello.go

hello.go中有sayHello()函数。
testImport.go

testImport.go中的LOL()函数内,直接调用了sayHello()函数。
因为这两个.go文件存在于同一个hello包中,所以函数可以随意调用,首字母也不用大写。
因为这两个.go文件存在于同一个hello包中,所以函数可以随意调用,首字母也不用大写。
因为这两个.go文件存在于同一个hello包中,所以函数可以随意调用,首字母也不用大写。

我们看运行结果:


运行结果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,957评论 19 139
  • Go入门 Go介绍 部落图鉴之Go:爹好还这么努力? 环境配置 安装 下载源码编译安装 下载相应平台的安装包安装 ...
    齐天大圣李圣杰阅读 4,667评论 0 26
  • 引言 Go 语言这两年在语言排行榜上的上升势头非常猛,Go 语言虽然是静态编译型语言,但是它却拥有脚本化的语法,支...
    一缕殇流化隐半边冰霜阅读 33,537评论 11 90
  • If you pay fee you will have to study year10 you have no ...
    eva_71fa阅读 274评论 0 0
  • 走的久了,心就容易静一静,看着自己的傻傻坚持的脚下,摸清前方暗暗无终的路~ 再别人眼里,那些呼啸而过的车上的某个人...
    djq铨阅读 191评论 0 0