返回介绍

06.3 设计你的 Go packages

发布于 2024-08-14 12:50:32 字数 4417 浏览 0 评论 0 收藏 0

Go 包的源码可以包括多个文件和多个目录,可以在以包名称命名的单个目录找到,除了 main 包,它可以放在任意位置。

这章的目标是开发一个名为 aPackage 的简单 Go 包。这个包的源文件命名为 aPackage.go,它的源码分为两部分介绍。

aPackage.go 的第一部分如下:

package aPackage

import (
    "fmt"
)

func A() {
    fmt.Println("This is function A!")
}

aPackage.go 的第二部分代码如下:

func B() {
    fmt.Println("privateConstant:", privateConstant)
}

const MyConstant = 123
const privateConstant = 21

如您所见,开发一个新包是相当简单的!现在您不能单独使用这个包,需要创建一个名为 mainmain() 函数的包来创建执行文件。这里,使用 aPackage 的程序名是 useAPackage.go,代码如下:

package main

import (
    "aPackage"
    "fmt"
)

func main() {
    fmt.Println("Using aPackage!")
    aPackage.A()
    aPackage.B()
    fmt.Println(aPackage.MyConstant)
}

如果现在执行 useAPackage.go,将会得到一个错误信息,告诉您不能执行:

$go run useAPackage.go
useAPackage.go:4:2: cannot find package "aPackage" in any of:
    /use/local/Cellar/go/1.9.2/libexec/src/aPackage (from $GOROOT)
    /Users/mtsouk/go/src/aPackage (from $GOPATH)

还有一件事需要处理,正如在 第一章——Go与操作系统 了解到的,Go 需要从 Unix shell 执行特定命令来安装所有外部包,也包括您自己开发的。因此,您需要把之前的包放在正确的目录下并对当前 Unix 用户可用。所以安装您自己的包,需要执行如下命令:

$mkdir ~/go/src/aPackage
$cp aPackage.go ~/go/src/aPackage/
$go install aPackage
$cd ~/go/pkg/dawin_amd64/
$ls -l aPackage.a
-rw-r--r-- 1 mtsouk staff 4980 Dec 22 06:12 aPackage.a

如果 ~/go 不存在,您需要使用 mkdir(1) 命令创建它。您也需要有相同的 ~/go/src 目录。

使用 useAPackage.go 将产生如下输出:

$go run useAPackage.go
Using aPackage!
This is function A!
privateConstant: 21
123

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文