go语言标准库的包以及功能介绍

标准库

Go语言的标准库覆盖网络、系统、加密、编码、图形等各个方面,可以直接使用标准库的 http 包进行 HTTP 协议的收发处理;网络库基于高性能的操作系统通信模型(Linux 的 epoll、Windows 的 IOCP);所有的加密、编码都内建支持,不需要再从第三方开发者处获取

Go 语言的编译器也是标准库的一部分,通过词法器扫描源码,使用语法树获得源码逻辑分支等。Go 语言的周边工具也是建立在这些标准库上。在标准库上可以完成几乎大部分的需求

像 fmt、os 等这样具有常用功能的内置包在 Go 语言中有 150 个以上,它们被称为标准库,大部分(一些底层的除外)内置于 Go 本身。完整列表可以在 Go Walker 查看。

unsafe: 包含了一些打破 Go 语言“类型安全”的命令,一般的程序中不会被使用,可用在 C/C++ 程序的调用中。

syscall-os-os/exec:os: 提供给我们一个平台无关性的操作系统功能接口,采用类Unix设计,隐藏了不同操作系统间差异,让不同的文件系统和操作系统对象表现一致。

os/exec: 提供我们运行外部操作系统命令和程序的方式。syscall: 底层的外部包,提供了操作系统底层调用的基本接口。

通过一个 Go 程序让Linux重启来体现它的能力。

package main
import (
	"syscall"
)

const LINUX_REBOOT_MAGIC1 uintptr = 0xfee1dead
const LINUX_REBOOT_MAGIC2 uintptr = 672274793
const LINUX_REBOOT_CMD_RESTART uintptr = 0x1234567

func main() {
	syscall.Syscall(syscall.SYS_REBOOT,
		LINUX_REBOOT_MAGIC1,
		LINUX_REBOOT_MAGIC2,
		LINUX_REBOOT_CMD_RESTART)
}

archive/tar 和 /zip-compress:压缩(解压缩)文件功能。

fmt-io-bufio-path/filepath-flag:

fmt: 提供了格式化输入输出功能。

io: 提供了基本输入输出功能,大多数是围绕系统功能的封装。

bufio: 缓冲输入输出功能的封装。

path/filepath: 用来操作在当前系统中的目标文件名路径。

flag: 对命令行参数的操作。  

strings-strconv-unicode-regexp-bytes:

strings: 提供对字符串的操作。

strconv: 提供将字符串转换为基础类型的功能。

unicode: 为 unicode 型的字符串提供特殊的功能。

regexp: 正则表达式功能。

bytes: 提供对字符型分片的操作。

index/suffixarray: 子字符串快速查询。

math-math/cmath-math/big-math/rand-sort:

math: 基本的数学函数。

math/cmath: 对复数的操作。

math/rand: 伪随机数生成。

sort: 为数组排序和自定义集合。

math/big: 大数的实现和计算。   

container-/list-ring-heap: 实现对集合的操作。

list: 双链表。

ring: 环形链表。

以上就是golang 哪些功能用标准库的详细内容,更多请关注北单博客其它相关文章!

原创文章,作者:XPNLO,如若转载,请注明出处:https://www.beidanyezhu.com/a/26076.html

(0)
XPNLO的头像XPNLO
上一篇 2024-12-17 14:10:17
下一篇 2025-01-01 17:24:57

相关推荐

  • go语言中的byte是什么

    字符串中的每一个元素叫做“字符”,在遍历或者单个获取字符串元素时可以获得字符。 Go语言的字符有以下两种: 一种是 uint8 类型,或者叫 byte 型,代表了 ASCII 码的…

  • go语言适合开发什么

    其实Go语言主要用作服务器端开发,其定位是用来开发“大型软件”的,适合于需要很多程序员一起开发,并且开发周期较长的大型软件和支持云计算的网络服务。 Go语言融合了传统编译型语言的高…

  • go语言中的nil是什么

    大家都清楚,当你声明了一个变量 但却还并木优赋值时,golang中会自动给你的变量类型给一个对应的默认零值。 这是每种类型对应的零值: bool -> false numbe…

  • go语言使用json隐藏字段的方法

    使用场景:在 go 中给 API 调用者响应 json 数据。 1. 有些字段不暴露给用户。 2. 有些字段是根据用户的级别控制是否有这些数据。 Id字段不暴露给用户,则使用 `j…

    2025-01-03
  • go语言中可以把包名去掉吗

    Golang不可以把包名去掉,包名是一种类似命名空间的管理和组织代码的方式,而Golang的包有两种类型,一种是“main”包,该包的可以有唯一的一个“main”函数,这个函数也是…

  • go语言支持泛型吗

    Golang团队认为在类型系统和运行时的复杂性花费太大,还没找到可以和这个复杂性相抵的良好设计。 内置的map和slice其实都有泛型的味道,加上可以用interface{}来构造…

  • go语言适合开发web吗

    go语言适合开发web吗?相信大部分人都不太了解,今天小编为了让大家更加了解,给大家总结了以下内容,跟随小编一起来看看吧。 网络编程方面,Go语言广泛应用于 Web 应用、API …

  • go语言中的反射

    反射是什么? 反射是一种计算机处理方式。有程序可以访问、检测和修改它本身状态或行为的这种能力。能提供封装程序集、类型的对象。(程序集包含模块,而模块包含类型,类型又包含成员。)Go…

  • go语言能进行反编译吗

    go语言能进行反编译吗?编译后是什么格式的文件?可能很多人对此没有深入了解过,故而小编总结了这篇文章,通过这文章的讲解,希望你能够收获更多知识。 Golang不可以反编译,因为Go…

  • go语言中读取文本乱码怎么解决

    1、当文件中存在中文字符时,读取文件出现乱码,解决方法: 使用"github.com/axgle/mahonia"第三方包解译码。 package functi…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

分享本页
返回顶部