[Golang]包
Posted @书生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Golang]包相关的知识,希望对你有一定的参考价值。
前言:
包就是数据和函数的集合,即我们编写的每个.go的程序文件都归属于一个包,在Go中,是通过包的形式来对项目结构或者文件进行管理。
包名与标识符
包
因为我们是通过包来管理文件,所以包名的命名是十分重要的,通常情况下,包名就是存放所使用的包的文件目录名。
当然我们也并不需要过度担心存在包名冲突的问题,引入导入包的时候,是需要靠全路径进行导入的,可以区分不同的包。一般情况下,包被导入后包名就是默认的名字,访问该包内的函数或者变量的时候,需要使用(Go中可以给该名字进行修改,这样就解决了包名相同的问题,注:修改名字后只能使用修改之后的名字)
此时,我们需要认识两个关键字package 和import
package :定义一个包,即该程序文件属于package后定义的包
import :导入我们需要使用到的包
语法:
package 包名
import 包所在的路径
修改包名称: import 修改的包名 包所在的路径
package cal //定义一个cal包,包含此文件,即此文件是属于一个名字为cal的包
import FMT "fmt" //引入fmt包,将fmt包名改为FMT
func sum(n int){
num:=0
for i:=1;i<=n;i++{
num+=i
}
FMT.Println(num)
}
注: 我们通过import引入的包,必须要进行使用,否则编译器会报错;同样的,我们定义过的变量,也必须要进行使用,否则编译器报错
当引用多个包的时候,我们可以简写为一下的形式:
import (
"fmt"
"unsafe"
)
如果我们引入了unsafe包,但没有使用,编译器会报错,这是我们不引入unsafe包,也可以对其进行屏蔽
eg:
import (
"fmt"
_ "unsafe" //屏蔽了unsafe包
)
如果我们要引入自己编写的包,需要用路径进行引入,我们在安装Go环境的时候,设置了环境变量GOPATH,GOPATH的目录下必须有个文件为src,我们引入的路径就从src下开始。(可以省略src,编译器会自动进行添加)
eg:
环境变量GOPATH的值如下:
我们在使用cal包的时候需要引入路径:
注: 如果我们希望编写的为可执行程序文件,则该文件必须属于main包即(package main) ,只有在main包中才会有main函数
标识符
如果我们希望一个变量或者函数在其他的包中是可以使用的话,该变量或者函数的名称应该以大写字母开头,类似于其他语言的公有概念。
如果名称以小写字母开头,在其他包中是不可以被使用的,类似于私有的
包的搜索:
编译器会首先查找 Go 的安装目录,没有找到,然后才会按顺序查找 GOPATH 变量里列出的目录。如果编译器查遍 GOPATH 也没有找到要导入的包,那么在试图对程序执行 run 或者 build的时候就会出错。
当然我们在引入包的时候,可以指定一个URL即网络路径,获取程序的依赖,这主要是依靠go get命令来完成的
go get download and install packages and dependencies
下载并安装软件包和依赖项
go get 将获取任意指定的 URL 的包,或者一个已经导入的包所依赖的其他包。
注:如果本篇博客有任何错误和建议,欢迎伙伴们留言
以上是关于[Golang]包的主要内容,如果未能解决你的问题,请参考以下文章