[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]包的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 - Golang 实现简单的 Web 服务器

代码片段 - Golang 实现集合操作

json [Golang] golang #golang #snippets中有用的片段

java golang oop 2文章片段

golang 去练习片段

golang 转到片段以观察运行时行为和内存分配