8.5 Go语言自定义包

包是Go语言中代码组成和代码编译的主要方式。关于包的基本信息我们已经在前面介绍过了,本节我们主要来介绍一下如何自定义一个包并使用它。

到目前为止,我们所使用的例子都是以一个包的形式存在的,比如 main 包。在Go语言里,允许我们将同一个包的代码分隔成多个独立的源码文件来单独保存,只需要将这些文件放在同一个目录下即可。

我们创建的自定义的包需要将其放在 GOPATH 的 src 目录下(也可以是 src 目录下的某个子目录),而且两个不同的包不能放在同一目录下,这样会引起编译错误。

一个包中可以有任意多个文件,文件的名字也没有任何规定(但后缀必须是 .go),这里我们假设包名就是 .go 的文件名(如果一个包有多个 .go 文件,则其中会有一个 .go 文件的文件名和包名相同)。

下面通过示例来演示一下如何创建一个名为 demo 的自定义包,并在 main 包中使用自定义包 demo 中的方法。

首先,在 GOPATH 下的 src 目录中新建一个 demo 文件夹 ,并在 demo 文件夹下创建 demo.go 文件,如下所示:
在这里插入图片描述

demo.go 文件的代码如下所示:

package demo
import (
    "fmt"
)
func PrintStr() {
    fmt.Println("go语言")
}

然后,在 GOPATH 下的 src 目录中新建一个 main 文件夹,并在 main 文件夹下创建 mian.go 文件,如下所示:
在这里插入图片描述

main.go 文件的代码如下所示:

package main
import (
    "demo"
)
func main() {
    demo.PrintStr()
}

运行结果如下所示:

go run main.go
go 语言

对引用自定义包需要注意以下几点:

  • 如果项目的目录不在 GOPATH 环境变量中,则需要把项目移到 GOPATH 所在的目录中,或者将项目所在的目录设置到 GOPATH
    环境变量中,否则无法完成编译;
  • 使用 import 语句导入包时,使用的是包所属文件夹的名称;
  • 包中的函数名第一个字母要大写,否则无法在外部调用;
  • 自定义包的包名不必与其所在文件夹的名称保持一致,但为了便于维护,建议保持一致;
  • 调用自定义包时使用 包名 . 函数名 的方式,如上例:demo.PrintStr()。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值