Go从入门到精通——使用包实现代码重用

使用包实现代码重用

本章介绍如下内容。

  • 导入包。
  • 使用第三方包。
  • 安装第三方包。
  • 管理第三方依赖。
  • 创建包。

  在 Go 语言中,包用于将代码编组,以便在 Go 程序中导入并使用它们。

1.1 导入包

  为方便理解如何导入并使用包,先来个简单的程序。

package main

import {
    "fmt"
}

func main(){
    fmt.Println("Hello World")
}

  Go 程序以 package 语句打头。main 包是一种特殊的包,其特殊之处在于不能导入。对 main 包的唯一要求是,必须声明一个 main 函数,这个函数不接受任何参数且不返回任何值。简而言之,main 包是程序的入口。

  在 main 包中,可使用 import 声明来导入其他包。导入包后,就可使用其中被导出的标识符。

  在 Go 语言中,标识符可以是变量、常量、类型、函数或方法。

  这让包能够通过接口提供各种功能。

  举个函数导出的例子,strings 包导出了函数 ToLower,可用于将字符串转换为小写。

package main

import {
  "fmt" 
}

func main(){
   fmt.Println(string.ToLower("STOP SHOUTING!"))
}

  导入包并使用其中导出的标识符,是重用标准库和其他第三方代码的基本方式。

  这种方式虽然简单,但是灵活性和代码重用在很大程度上都是通过这种方式实现的。

1.2 使用第三方包

  标准库提供了很多功能,但 Go 语言的设计理念是确保标准库小巧而稳定,因此标准库没有提供连接到数据库、分析文件格式以及实现身份验证协议的功能。不用多久,标准库就无法满足编写程序的需求了。在这种情况下,程序员有2种选择:

  1. 自己编写解决问题的代码。
  2. 寻找能够解决问题的包(或库代码)。

  大部分程序员很可能会选择第二种做法。然而,在程序中添加额外的依赖要三思而行,因为这可能影响程序的稳定性和可维护性。考虑使用第三方库时,您应该自问如下几个问题:

  • 我明白了这些代码是做什么的吗?
  • 这些代码值得信任吗?
  • 这些代码的维护情况如何?
  • 我真的需要这个库吗?

  回答这些问题时,请考虑如下几点:

  • 明白包的作用至关重要。优秀的第三方包都有卓越的文档,这些文档通常遵循 Go 语言文档约定,指出了它们导出了哪些标识符。通过阅读文档,可确定包是否提供了你所需的功能。
  • 确定第三方包值得信任很重要。
  • 考虑到软件的特征,第三方包不可避免地存在 Bug。不要选择几年都没有更新的包,而应选择开发积极维护的第三方包,因为这意味着随着时间的推移,这样的包会越来越稳定。
  • 导入第三方包会增加程序的复杂性。很多时候导入一个包只为了使用其中一个函数,在这种情况下,可复制这个函数,而不导入整个包。

1.3 安装第三方包

  要使用第三方库,必须像使用标准库一样使用 import 语句导入它。

  下面将使用 Go 小组开发的 stringutil 包。这是一个简单的第三方包,只有一个函数被导出——Reverse。这个函数将一个字符串作为参数,将该字符串反转并返回结果。

  要使用第三方包,必须使用命令 go get 安装它:

  go get github.com/golang/example/stringutil

  这个包被安装到环境变量 GOPATH 指定的路径中,因此可在程序中使用它。要查看这个包的源代码,可打开目录 src 中的文件。包的安装目录如下:

// OSX and Linux
$GOPATH/src/github/golang/example/stringutil

//Windows
%GOPATH%\src\github\glang\example\stringutil

  安装这个包后,就可以导入它了。

posted @ 2023-10-30 17:27  左扬  阅读(50)  评论(0编辑  收藏  举报
levels of contents