Go语言的小细节--导入外部的包

tonny · · 2684 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

因为之前一直在使用Python,刚刚开始学习Go语言,就遇到了一个缠人的小妖精,那就是Go语言怎么才能导入外部的包。Python的很简单,直接包名就是文件名,包内的方法的调用就是包名+函数名(参数)。而刚开始学习Go的时候,就发现既要有文件名,要有包名(package),还有方法。一时间这三者的关系很难厘清。经过了一些尝试总算也是有一些收获。举个例子: 一个文件,文件名为file,file里面有一个test.go的文件,这是我要导入的。 这个test.go文件里的package名为packagetest test.go里面的func Test(){...}方法是我最后要调用的 那么OK,来捋一下现在有文件夹file, GO文件test.go, GO文件里面设置的包名packagetest和调用的方法Test()。其实在调用的过程中import是file的路径,方法的调用是packagetest.Test()。看到这里想必也就能够看明白了,这里没有test.go这个文件名什么事。系统在调用的时候直接查找的是.go文件里package的包名。 在写完上面的一个小时后我在查看go的源码文件时发现,go这样做的用意。 一个文件路径下面只能有一个包名,但是可以有多个文件。例如file这个文件下面有test1.go和test2.go,如果这两个.go文件里面的包名一致的话,是不会出问题的,相当于是一个包分别存在两个文件之中,他们相互之间的函数调用也就想是在一个文件中一样。但是如果两个.go文件的包名不一样,系统就会报错。

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2684 次点击  
加入收藏 微博
2 回复  |  直到 2016-12-30 06:11:37
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传