美文网首页
golang包package

golang包package

作者: 程序小白菜 | 来源:发表于2019-12-31 09:29 被阅读0次

含义

包是函数和数据的集合。用 package 关键字定义一个包。文件名不需要与包名一致。包名的约定是使用小写字符。 Go 包可以由多个文件组成,但是使用相同的package <name> 这一行。

package even //开始自定义的包

func Even(i int) bool { //可导出函数
    return i % 2 == 0
}

func odd(i int) bool { //私有函数
    return i % 2 == 1
}

名称以大写字母起始的是可导出的,可以在包的外部调用。
概括来说:
* 公有函数的名字以大写字母开头
* 私有函数的名字以小写字母开头

这个规则同样适用于定义在包中的其他名字(新类型、全局变量)。注意, “大写” 的含义并不仅限于 US ASCII,它被扩展到了所有大小写字母表(拉丁文、希腊文、斯拉夫文、亚美尼亚文和埃及古文)

标识符

命名规则

  • 包名是好的:短的、简洁的、好记的。包名是小写的一个单词;不应当有下划线或混合大小写。
  • 包名是导入的默认名称。可以通过在导入语句指定其他名称来覆盖默认名称
//给包定义别名
import bar "bytes"
  • 包名就是代码的根目录名
  • 在 Go 中使用混合大小写 MixedCaps 或者 mixedCaps,而不是下划线区分含有多个单词的名字

包的文档

每个包都应该有包注释,在 package 前的一个注释块。对于多文件包,包注释只需要出现在一个文件前,任意一个文件都可以。包注释应当对包进行介绍,并提供相关于包的整体信息。这会出现在 go doc 生成的关于包的页面上,并且相关的细节会一并显示。

测试包

在 Go 中为包编写单元测试应当是一种习惯。编写测试需要包含 testing 包和程序 go test。两者都有良好的文档
测试文件也在包目录中, 被命名为*_test.go。这些测试文件同 Go 程序中的其他文件一样,但是 go test 只会执行测试函数。每个测试函数都有相同的标识,它的名字以 Test 开头

func TestXxx(t *testing.T)

测试案例

package even 

import "testing" 

func TestEven(t *testing.T) { 
    i f ! Even(2) { 
        t.Log("2 should be even!") 
        t.Fail() 
    } 
}

常用的包

fmt
包 fmt 实现了格式化的 I/O 函数,这与 C 的 printf 和 scanf 类似。格式化短语
派生于 C 。
io
这个包提供了原始的 I/O 操作界面。它主要的任务是对 os 包这样的原始的 I/O 进行封装,增加一些其他相关,使其具有抽象功能用在公共的接口上。
bufio
这个包实现了缓冲的 I/O。它封装于 io.Reader 和 io.Writer 对象,创建了另一个对象(Reader 和 Writer)在提供缓冲的同时实现了一些文本 I/O 的功能。
sort
sort 包提供了对数组和用户定义集合的原始的排序功能。
strconv
strconv 包提供了将字符串转换成基本数据类型,或者从基本数据类型转换为字符串的功能。
os
os 包提供了与平台无关的操作系统功能接口。其设计是 Unix 形式的。
sync
sync 包提供了基本的同步原语,例如互斥锁。
flag
flag 包实现了命令行解析。
encoding/json
encoding/json 包实现了编码与解码 RFC 4627 [2] 定义的 JSON 对象。
html/template
数据驱动的模板,用于生成文本输出,例如 HTML。
将模板关联到某个数据结构上进行解析。模板内容指向数据结构的元素(通常结构的字段或者 map 的键)控制解析并且决定某个值会被显示。模板扫描结构以便解析,而 “游标” @ 决定了当前位置在结构中的值。
net/http
net/http 实现了 HTTP 请求、响应和 URL 的解析,并且提供了可扩展的 HTTP 服
务和基本的 HTTP 客户端。
unsafe
unsafe 包包含了 Go 程序中数据类型上所有不安全的操作。 通常无须使用这个。
reflect
reflect 包实现了运行时反射,允许程序通过抽象类型操作对象。通常用于处理静态类型 interface{} 的值,并且通过 Typeof 解析出其动态类型信息,通常会返回一个有接口类型 Type 的对象。
os/exec
os/exec 包执行外部命令。

相关文章

  • golang包package

    含义 包是函数和数据的集合。用 package 关键字定义一个包。文件名不需要与包名一致。包名的约定是使用小写字符...

  • GO 优雅追踪堆栈错误包

    Golang tracks stack error package. 优雅追踪堆栈错误包 安装(Install) ...

  • golang的包(package)

    理解Golang包导入 http://tonybai.com/2015/03/09/understanding-i...

  • Golang基础学习-time包的学习

    1.简介 Golang基础学习-time包的学习. 2.代码 ``` package main import ( ...

  • golang基础学习-strings包常用函数学习

    1.简介 Golang基础学习-strings包的学习. 2.代码 ``` package main import...

  • Go package

    包(package)是多个Golang源码的集合,是一种高级的代码复用方案,换言之Golang的【源码复用】建立在...

  • Golang须知

    变量的包作用域在Golang中,同个package中的非局部变量,可以认为是package作用域,可在packag...

  • Golang一些编译学习探讨

    问题一:能介绍一下golang的包的概念么? 答:golang程序是通过编译package来生成对应的可执行程序的...

  • Golang学习笔记之包(package)

    包是结构化代码的一种方式:每个程序都由包的概念组成,可以使用自身的包或者从其它包中导入内容。 一、工作空间 编译⼯...

  • Go 在具体编程中的一些实践

    排序 Golang 提供 sort package[https://golang.org/pkg/sort/] 来...

网友评论

      本文标题:golang包package

      本文链接:https://www.haomeiwen.com/subject/pxxboctx.html