当前位置: 首页 > news >正文

GO语言基础笔记(五):包的介绍

        在Go语言中,包(package)是代码组织和重用的基本单位。Go的标准库中包含了许多实用的包,它们提供了从基础数据处理到复杂网络编程等各种功能。下面是一些常用的Go标准库包及其作用的介绍:

目录

1. fmt

2. net/http

3. io/ioutil

4. os

5. encoding/json

6. math

7. sync

8. time

9. strings

10. database/sql

11. log

12. bufio

13. regexp

14. os/exec

15. html/template

16. path/filepath

17. bytes

18. errors

19. reflect

20. crypto

21. flag

22. image

23. container/heap

24. net/url

25. net

26. bufio

27. context

28. archive/zip

29. compress/gzip

30. sort

31. strconv

32. unicode

33. runtime

34. testing

35. os/signal

36. http/httptest

37. os/user

38. mime/multipart

39. syscall

40. text/template

41. html

42. net/rpc

43. expvar

44. plugin

45. go/token

46. go/ast

47. go/parser

48. go/format

49. image/draw

50. runtime/pprof


1. fmt

  • 作用:用于格式化输入输出。
  • 功能:提供了格式化输出到控制台、读取输入、以及使用格式化字符串的功能。

2. net/http

  • 作用:提供了HTTP客户端和服务器实现。
  • 功能:用于编写Web服务器、处理HTTP请求和发送HTTP请求。

3. io/ioutil

  • 作用:简化文件读写操作。
  • 功能:提供了一些方便的函数来读写文件。

4. os

  • 作用:用于操作系统功能的交互。
  • 功能:文件系统操作、环境变量、命令行参数等。

5. encoding/json

  • 作用:用于处理JSON数据。
  • 功能:JSON的解析和生成。

6. math

  • 作用:提供基本的数学函数。
  • 功能:数学计算,如平方根、对数等。

7. sync

  • 作用:提供同步机制,如互斥锁和条件变量。
  • 功能:用于并发编程中的数据同步。

8. time

  • 作用:时间的显示和测量。
  • 功能:时间的获取、时间运算、定时器等。

9. strings

  • 作用:提供字符串处理相关的函数。
  • 功能:字符串的查询、替换、比较、裁剪、拆分和合并等。

10. database/sql

  • 作用:用于数据库操作。
  • 功能:与SQL数据库交互,执行查询和命令。

11. log

  • 作用:提供日志记录功能。
  • 功能:日志的创建、配置和输出。

12. bufio

  • 作用:带缓冲的I/O操作。
  • 功能:提高读写效率,特别是对于频繁的小量数据操作。

13. regexp

  • 作用:提供正则表达式功能。
  • 功能:用于字符串的模式匹配、搜索、替换和提取等操作。

14. os/exec

  • 作用:运行外部命令。
  • 功能:用于启动外部进程,运行系统命令或其他程序。

15. html/template

  • 作用:提供HTML模板处理能力。
  • 功能:用于生成HTML内容,特别是在Web应用中动态生成网页。

16. path/filepath

  • 作用:用于操作文件路径。
  • 功能:跨平台处理文件路径,如拼接、分割路径等。

17. bytes

  • 作用:处理字节序列。
  • 功能:提供字节切片的操作,如比较、拼接等。

18. errors

  • 作用:创建和操作错误。
  • 功能:定义错误类型,用于错误处理。

19. reflect

  • 作用:实现反射功能。
  • 功能:允许程序在运行时检查、修改自身的结构和行为。

20. crypto

  • 作用:提供加密功能。
  • 功能:包括各种加密算法,如AES、RSA等。

21. flag

  • 作用:命令行参数解析。
  • 功能:解析命令行参数,支持布尔、整型、字符串等多种类型的参数。

22. image

  • 作用:提供基本的图像处理能力。
  • 功能:图像的创建、颜色操作、格式化输出等。

23. container/heap

  • 作用:提供堆操作功能。
  • 功能:实现任意类型的堆操作,如最小堆、最大堆等。

24. net/url

  • 作用:解析和构造URL。
  • 功能:URL的解析、修改和构造。

25. net

  • 作用:提供网络I/O功能,包括TCP/IP、UDP、域名解析等。
  • 功能:用于编写网络客户端和服务器,如创建TCP连接,处理UDP数据包等。

26. bufio

  • 作用:提供带缓冲的I/O操作。
  • 功能:提高读写效率,适用于大量数据和频繁的小数据读写操作。

27. context

  • 作用:提供上下文管理功能,用于控制生命周期和传递请求范围的数据。
  • 功能:管理和传递请求级别的数据,控制Goroutines的生命周期。

28. archive/zip

  • 作用:处理ZIP文件。
  • 功能:用于创建和解压ZIP文件。

29. compress/gzip

  • 作用:提供GZIP文件格式的压缩和解压缩。
  • 功能:用于读取和写入GZIP格式的文件。

30. sort

  • 作用:提供排序功能。
  • 功能:对各种数据类型进行排序,包括自定义类型的排序。

31. strconv

  • 作用:字符串和基本数据类型之间的转换。
  • 功能:整数、浮点数与字符串之间的转换,以及解析布尔值等。

32. unicode

  • 作用:处理Unicode字符。
  • 功能:检查、转换Unicode字符和字符集。

33. runtime

  • 作用:与Go运行时系统的交互。
  • 功能:控制Goroutine的行为,获取系统信息等。

34. testing

  • 作用:提供测试支持。
  • 功能:编写单元测试和基准测试,运行和评估测试结果。

35. os/signal

  • 作用:处理操作系统信号。
  • 功能:捕获和响应系统信号,如中断信号等。

36. http/httptest

  • 作用:提供HTTP测试功能。
  • 功能:创建测试HTTP服务器和客户端,用于测试HTTP应用。

37. os/user

  • 作用:访问操作系统的用户账户信息。
  • 功能:获取当前和其他用户的信息,如用户名、家目录等。

38. mime/multipart

  • 作用:处理MIME的多部分消息体。
  • 功能:用于解析和构造多部分的邮件消息体,常用于文件上传。

39. syscall

  • 作用:底层的操作系统调用。
  • 功能:直接调用操作系统提供的功能,用于编写低级的系统工具。

40. text/template

  • 作用:处理文本模板。
  • 功能:动态构造文本内容,用于生成报告、文档等。

41. html

  • 作用:处理HTML文本。
  • 功能:转义和解转义HTML文本,用于防止跨站脚本攻击(XSS)。

42. net/rpc

  • 作用:实现远程过程调用(RPC)。
  • 功能:在网络上调用远程对象的方法。

43. expvar

  • 作用:发布变量值以进行监控。
  • 功能:用于服务监控和故障调试。

44. plugin

  • 作用:支持插件。
  • 功能:动态加载外部代码作为插件,扩展程序的功能。

45. go/token

  • 作用:Go语言的词法标记(Token)操作。
  • 功能:用于Go代码的分析和处理。

46. go/ast

  • 作用:操作Go的抽象语法树(AST)。
  • 功能:分析和修改Go源代码。

47. go/parser

  • 作用:解析Go源代码。
  • 功能:将Go源代码转换为抽象语法树(AST)。

48. go/format

  • 作用:格式化Go源代码。
  • 功能:按照官方风格调整Go代码的格式。

49. image/draw

  • 作用:基本的图像绘制功能。
  • 功能:在图像上绘制和合成图像。

50. runtime/pprof

  • 作用:性能剖析。
  • 功能:收集程序的运行时性能数据,如CPU、内存使用情况。

相关文章:

GO语言基础笔记(五):包的介绍

在Go语言中,包(package)是代码组织和重用的基本单位。Go的标准库中包含了许多实用的包,它们提供了从基础数据处理到复杂网络编程等各种功能。下面是一些常用的Go标准库包及其作用的介绍: 目录 1. fmt 2. net/http …...

【Unity6.0+AI】Sentis加载模型识别手写数字案例实现

按照国际惯例,看效果: 素材准备: 自己在PS中绘制黑底白字手写字体,导出jpg,尺寸28*28! 素材设置 基本步骤 准备工作:从 ONNX Model Zoo 下载手写识别 ONNX 模型文件 【下载模型】MNIST 手写数字识别模型 mnist-12.onnx,并将其拖入项目窗口的 Assets 文件夹。 【下载模…...

VScode跑通Remix.js官方的contact程序开发过程

目录 1 引言 2 安装并跑起来 3 设置根路由 4 用links来添加风格资源 ​5 联系人路由的UI 6 添加联系人的UI组件 7 嵌套路由和出口 8 类型推理 9 Loader里的URL参数 10 验证参数并抛出响应 书接上回,我们已经跑通了remix的quick start项目,接下…...

讲座思考 | 周志华教授:新型机器学习神经元模型的探索

12月22日,有幸听了南京大学周志华教授题为“新型机器学习神经元模型的探索”的讲座。现场热闹非凡,大家像追星一样拿着“西瓜书”找周教授签名。周教授讲得依旧循循善诱,由浅入深,听得我很入迷,故作此记。 周教授首先就…...

docker构建镜像及项目部署

文章目录 练习资料下载一、docker基础1. 基本概念2. docker常见命令3. 命令别名4. 数据卷 二、docker自定义镜像1. 了解镜像结构2. 了解Dockerfile3. 构建Dockerfile文件,完成自定义镜像 三、网络1. docker常见网络命令2. docker自带虚拟网络3. 自定义网络 四、dock…...

ARM串口通信编程实验

完成:从终端输入选项,完成点灯关灯,打开风扇关闭风扇等操作 #include "gpio.h" int main() {char a;//char buf[128];uart4_config();gpio_config();while(1){//接收一个字符数据a getchar();//发送接收的字符putchar(a);switch(…...

MyBatis的延迟加载(懒加载)

MyBatis 中的延迟加载是指在需要时才加载对象的某些属性或关联对象,而不是在初始查询时就加载所有数据。这对于性能优化和减少不必要的数据库查询非常有用。 1. 基于配置文件的延迟加载 在 MyBatis 的 XML 映射文件中,你可以使用 lazyLoadingEnabled 和…...

嵌入式-stm32-用PWM点亮LED实现呼吸灯

一:知识前置 1.1、LED灯怎么才能亮? 答:LED需要低电平才能亮,高电平是灯灭。 1.2、LED灯为什么可以越来越亮,越来越暗? 答:这是用到不同占空比来实现的,控制LED实现呼吸灯&…...

C语言初学7:循环

while 循环 一、while 循环语法: while(condition) {statement(s); } condition 为任意非零值时都为 true。当条件为 true 时执行循环。 当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。 二、while 循环举例 #inc…...

力扣69. x 的平方根

二分查找 思路: 设置 left 指针为 0,right 指针为 x;如果 mid (right - left) / 2 left 的平方小于或等于 x,此时移动 left mid 1,并缓存当前 mid 值,可能这个 mid 就是结果,或者 x 的平方…...

go语言学习计划。

第1周:Go语言概述与环境搭建 内容:了解Go语言的历史、特点和应用场景。安装Go环境,配置工作区。实践:编写第一个Go程序,了解Go的编译运行流程。 第2周:基本语法与数据类型 内容:学习基本数据…...

设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式,每一种模式的概念、使用场景和优缺点。

系列文章目录 设计模式之-6大设计原则简单易懂的理解以及它们的适用场景和代码示列 设计模式之-单列设计模式,5种单例设计模式使用场景以及它们的优缺点 设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式,每一种模式的概念、使用…...

docker run --help帮助文档

文章目录 基础环境docker run --helpdocker run --help中文翻译 基础环境 环境:ubuntu20.04 x64 使用apt install docker.io安装docker docker版本: rootky:/userdata/testOnebuttonDeploy/shsany_ai/kyai_arm_ubuntu# docker -v Docker version 24.0…...

【Qt-Timer】

Qt编程指南 ■ QTimeEvent■ Qtimer■ QDateTimeEdit■ QDateTime■■ ■ QTimeEvent 1.启动定时器 定时器ID startTimer (时间间隔); int idt startTimer (250); 每隔指定的时间间隔,触发一次定时器事件。 2.定时器事件处理 virtual void timerEvent (QTimeEvent…...

Java多线程技术五——单例模式与多线程-备份

1 概述 本章的知识点非常重要。在单例模式与多线程技术相结合的过程中,我们能发现很多以前从未考虑过的问题。这些不良的程序设计如果应用在商业项目中将会带来非常大的麻烦。本章的案例也充分说明,线程与某些技术相结合中,我们要考虑的事情会…...

Seem环境安装

创建虚拟环境 conda create -n seem python3.8 conda activate seem 安装相关依赖:(不按照的话会报错) sudo apt-get install openmpi-bin libopenmpi-devconda install gcc_linux-64pip install mpi4py 导入环境 export PYTHONPATH$(pwd…...

java八股jvm

JVM虚拟机篇-01-JVM介绍、运行流程_哔哩哔哩_bilibili 1.PC程序计数器 2.堆 3.虚拟机栈 4.方法区/永久代/元空间 5.直接内存 JVM虚拟机篇-06-JVM组成-你听过直接内存吗_哔哩哔哩_bilibili 6.双亲委派 从下往上找,有同名类优先使用上级加载器的,不用自己…...

家校互通小程序实战开发02首页搭建

目录 1 创建应用2 搭建首页总结 我们上一篇介绍了家校互通小程序的需求,创建了对应的数据源。有了这个基础的分析之后,我们就可以进入到开发阶段了。开发小程序,先需要创建应用。 1 创建应用 登录控制台,点击创建应用&#xff0c…...

使用matlab制作声音采样率转换、播放以及显示的界面

利用matlab做一个声音采样率转换、播放以及显示的界面 大抵流程: 图形界面创建:使用figure函数创建名为“声音采样率转换”的图形界面,并设置了其位置和大小。 按钮和文本框:使用uicontrol函数创建了选择音频文件的按钮、显示当前…...

FPGA-AMBA协议、APB协议、AHB规范、AXI4协议规范概述及它们之间的关系

FPGA-AMBA协议、APB协议、AHB协议、AXI4协议规范概述 笔记记录,AMBA协议、APB协议、AHB规范、AXI4协议规范概述,只是概述描述,具体详细的协议地址传输、数据传输等内容将在下一章节详细说明。 文章目录 FPGA-AMBA协议…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...