和大多数编程语言一样,Go语言也存在包的概念,在go中使用package关键字定义一个包。

import自己的包Java import自己的包go语言_import自己的包Java


引入包的方式:

1.每个包依次单个引入的方式:

import"fmt"

import"os"

2.一次全部引入方式:

import(

"fmt"

"os"

)

上面引入都是系统自带的包,那么我们该如何引入自定义的包和函数呢?

我们自定义的包得放到我们的gopath下的src目录里。

查看gopath命令:goenv


import自己的包Java import自己的包go语言_package_02



如果我们不把我们定义的包放在gopath下的src目录下,那么当我们运行程序时,系统会提示无法找到包。


import自己的包Java import自己的包go语言_包_03



abc.go文件里的内容


import自己的包Java import自己的包go语言_包_04



接下来,演示一个引入一个自定义的包(包的功能是提供两个数的加减乘除功能),并让其可用。

首先在gopath的src目录下新建一个cal包。此时,该包还是空包,不提供任何功能。


import自己的包Java import自己的包go语言_import自己的包Java_05



然后我们在里面写一些方法,提供加减乘除的功能

新建一个add.go,写一个加法函数。文件名不需要和报名保持一致,文件名可以随意指定


import自己的包Java import自己的包go语言_package_06



以此类推,写好其它函数。


import自己的包Java import自己的包go语言_Go_07



go程序的入口是main包的main函数。这是每个项目比不可少的。

新建一个index.go文件


import自己的包Java import自己的包go语言_包_08



可以看到,成功引入并使用了自定义的cal包。

包内可以包含包。例如我在cal包下新建了一个test包,提供一个求整数绝对值的方法。


import自己的包Java import自己的包go语言_package_09



使用方法,和上面引入cal一样。


import自己的包Java import自己的包go语言_package_10



Go语言还支持导入一个在线的包,假如我们想导入的第三方包在github上,我们可以不用下载下来后导入,直接通过import"url"方式就行了。


import自己的包Java import自己的包go语言_import自己的包Java_11


在线导入包模块原理:Go编译器会自动先把url里面的包文件下载到本地你设置的GOPATH目录里面,目录格式就是URL的目录路径

 

在Go中,当函数的首字母大写的时候,函数会被从包中导出(在包外部可见,或者说公有的),当函数的首字母是是小写的时候,函数不会被从包中导出(在包外部不可见,在包内可见,或者说是私有的),所以可以看到我之前定义了几个加减乘除的函数名首字母都是大写的

概括来说:

       公有函数的名字以大写字母开头;

       私有函数的名字以小写字母开头.

这个规则同样适用于定义在包中的其他名字(新类型、全局变量)。注意,“大写”的 含义并不仅限于US ASCII,它被扩展到了整个Unicode范围。所以大写的希腊语、古埃及语都是可以的。



我们还可以给包取别名,如下图,我们给包cal去了别名Math


import自己的包Java import自己的包go语言_Go_12


下面列举一些常用的包:

import自己的包Java import自己的包go语言_package_13

import自己的包Java import自己的包go语言_import自己的包Java_14

import自己的包Java import自己的包go语言_包_15