八、Golang常用标准库及其用法

news/2024/4/25 12:49:21/文章来源:https://blog.csdn.net/weixin_44014982/article/details/130372304

1、fmt:格式化输入输出库

package main
import "fmt"
func main(){fmt.Println("Hello, World!")
}

2、net/http: HTTP 客户端和服务器库

package main
import ("fmt""net/http"
)func main() {http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, "Hello, 世界!")})http.ListenAndServe(":8080", nil)
}

3、os:操作系统相关库,如文件操作、环境变量

package mainimport ("fmt""os"
)func main() {file, err := os.Create("test.txt")if err != nil {fmt.Println("创建文件失败:", err)return}defer file.Close()file.WriteString("Hello, 世界!")
}

4、strconv:字符串与基本数据类型之间的转换库

package mainimport ("fmt""strconv"
)func main() {num := 42str := strconv.Itoa(num)fmt.Println("字符串形式的数字:", str)str = "42"num, err := strconv.Atoi(str)if err != nil {fmt.Println("转换失败:", err)return}fmt.Println("整数形式的数字:", num)
}

5、sync:并发编程同步原语库,如互斥锁、WaitGroup等

package mainimport ("fmt""sync"
)func main() {var wg sync.WaitGroupwg.Add(2)go func() {fmt.Println("任务1完成")wg.Done()}()go func() {fmt.Println("任务2完成")wg.Done()}()wg.Wait()fmt.Println("所有任务完成")
}

6、io/ioutil:输入输出食用工具库,用于简化文件读写操作

package mainimport ("fmt""io/ioutil"
)func main() {content, err := ioutil.ReadFile("test.txt")if err != nil {fmt.Println("读取文件失败:", err)return}fmt.Println("文件内容:", string(content))
}

7、encoding/json:JSON 编码和解码库

package mainimport ("encoding/json""fmt"
)type Person struct {Name string `json:"name"`Age  int    `json:"age"`
}func main() {jsonStr := `{"name": "张三", "age": 30}`var p Personerr := json.Unmarshal([]byte(jsonStr), &p)if err != nil {fmt.Println("解码失败:", err)return}fmt.Printf("解码后的结构体: %+v\n", p)data, err := json.Marshal(p)if err != nil {fmt.Println("编码失败:", err)return}fmt.Println("编码后的 JSON 字符串:", string(data))
}

8、time:时间处理库

package mainimport ("fmt""time"
)func main() {now := time.Now()fmt.Println("当前时间:", now)format := "2006-01-02 15:04:05"str := now.Format(format)fmt.Println("格式化后的时间:", str)str = "2023-04-25 12:00:00"t, err := time.Parse(format, str)if err != nil {fmt.Println("解析时间失败:", err)return}fmt.Println("解析后的时间:", t)
}

9、regexp:正则表达式库

package mainimport ("fmt""regexp"
)func main() {pattern := `^\d{3}-\d{2}-\d{4}$`re := regexp.MustCompile(pattern)input := "123-45-6789"isMatch := re.MatchString(input)fmt.Printf("输入字符串 %s 是否匹配模式 %s: %v\n", input, pattern, isMatch)
}

10、log:日志处理库

package mainimport ("log""os"
)func main() {file, err := os.OpenFile("log.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)if err != nil {log.Fatal("打开日志文件失败:", err)}defer file.Close()log.SetOutput(file)log.Println("这是一条日志记录")
}

11、bufio:缓冲输入输出库,用于提高读写效率

package mainimport ("bufio""fmt""os"
)func main() {file, err := os.Open("test.txt")if err != nil {fmt.Println("打开文件失败:", err)return}defer file.Close()scanner := bufio.NewScanner(file)for scanner.Scan() {fmt.Println(scanner.Text())}if err := scanner.Err(); err != nil {fmt.Println("读取文件失败:", err)}
}

12、path/filepath:文件路径操作库

package mainimport ("fmt""path/filepath"
)func main() {path := "/usr/local/go/src/fmt"fmt.Println("文件路径:", path)dir := filepath.Dir(path)fmt.Println("目录:", dir)base := filepath.Base(path)fmt.Println("文件名:", base)ext := filepath.Ext(path)fmt.Println("扩展名:", ext)
}

13、sort:排序库,用于对切片和自定义数据结构进行排序

package mainimport ("fmt""sort"
)func main() {nums := []int{5, 3, 8, 1, 9}sort.Ints(nums)fmt.Println("排序后的整数切片:", nums)strs := []string{"apple", "banana", "cherry", "orange"}sort.Strings(strs)fmt.Println("排序后的字符串切片:", strs)
}

14、container/list:双向链表库

package mainimport ("container/list""fmt"
)func main() {l := list.New()l.PushBack(1)l.PushBack(2)l.PushBack(3)for e := l.Front(); e != nil; e = e.Next() {fmt.Println(e.Value)}
}

15、math/rand:伪随机数生成库

package mainimport ("fmt""math/rand""time"
)func main() {rand.Seed(time.Now().UnixNano())randomInt := rand.Intn(100)fmt.Println("生成的随机整数:", randomInt)randomFloat := rand.Float64()fmt.Println("生成的随机浮点数:", randomFloat)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_103577.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ESP32设备驱动-BMM150数字地磁传感器驱动

BMM150数字地磁传感器驱动 文章目录 BMM150数字地磁传感器驱动1、BMM150介绍2、硬件准备3、软件准备4、驱动实现1、BMM150介绍 BMM150 是一款低功耗、低噪声的 3 轴数字地磁传感器,用于罗盘应用。 具有 1.56 x 1.56 mm 和 0.60 mm 高度的 12 引脚晶圆级芯片级封装 (WLCSP) 为…

直升机空气动力学基础--004翼型的阻力

来源 1. 空气的粘性 2.阻力的产生 3.形成因素 4.阻力系数曲线

转换json格式的日期为Javascript对象的函数

项目中碰到了用jQuery从后台获取的json格式的日期的字符串,需要将此字符串转换成JavaScript的日期对象。 代码如下: //转换json格式的日期(如:{ServerDatetime:"\/Date(1278930470649)\/"})为Javascript的日期对象 fu…

Linux tail 命令

前言 Linux 实时查看日志文件,最主要使用的就是tail命令。 linux tail命令用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”…

湿法冶金以及铼提取工艺,湿法冶金工艺特点及工艺流程

湿法冶金是利用浸出剂在一定温度压力下与矿石接触,把矿石中有用的金属溶解后再从溶液中回收有价金属的一种工艺,因为其过程大都是在水溶液中进行,所以又被称为“水法冶金”。 01 湿法冶金工艺特点及工艺流程 湿法冶金作为解决我国金属矿产资…

深度赋能产业数字化转型,蚂蚁集团数字化三件套亮相中国国际金融展

“十四五”规划纲要指出:加快推动数字产业化,推进产业数字化转型,实施“上云用数赋智”行动,推动数据赋能全产业链协同转型。明确提出了通过科技创新,加快产业数字化转型的要求。 4月25日,以“荟萃金融科技…

mybatisPlus·入门·贰

文章目录 1 简单CRUD接口1.1 根据id查询({id传参)1.1.1 接口类直接继承IService1.1.2 controller直接调用方法 1.2 根据ids查询1.3 新增1.3.1 接口类直接继承IService1.3.2 controller直接调用方法 1.4 修改状态(Query传参)1.4.1 …

新版Fluent默认保存的h5文件无法用Tecplot打开的解决办法(亲试有效,评论区是重点)

文章目录 Ansys Fluent简介Fluent 输入/出 文件格式新版Fluent的输出压缩文件(.cas.h5文件)解决办法 Ansys Fluent简介 Ansys Fluent ,是国际上比较流行的商用CFD软件包,在美国的市场占有率为60%,凡是和流体、热传递和…

NetXpert XG2帮您解决“布线安装与维护”难题

在传输大量数据时,光纤变得越来越重要,而铜缆在未来也将继续发挥重要作用,因此我们不仅要比较两种类型布线的优缺点,还要探究光纤传输中的错误来源。 测试光缆传输损耗的准确性对于故障排除至关重要,特别是在光纤情况下…

后台-husky提交代码规范使用

husky是一个git hook工具,可以帮助我们触发git提交的各个阶段:pre-commit、commit-msg、pre-push 1.如何使用husky呢? npx husky-init && npm installWindows安装不成功试试npx husky-init && npm install 2.git commit规范…

Java学习笔记-01

目录 jdk安装及环境配置 java前置知识 编写一个HelloWorld 常量 数据类型 变量 类型转换 算数运算符 一元运算符( --) 关系运算符 逻辑运算符(与或非,逻辑异或) 三元(三目)运算符 Scanner类的简单使用 jdk安装及环境配置 看到的一篇文章,…

【C++STL】set

前言 前面的CSTL的博客,我们介绍了string,vector,list,deque,priority_queue还有stack和queue。 这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。 而从本节开…

(二)ElasticSearch 辅助工具 Kibana 介绍与安装

1、什么是 kibana ? Kibana 是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。 Kibana让海量数据更容易理解。它操作简单&#xff…

0401概述-最短路径-加权有向图-数据结构和算法(Java)

文章目录 1 最短路径2 最短路径的性质3 加权有向图的数据结构3.1 加权有向边3.2 加权有向图 4 最短路径4.1 最短路径API4.2 最短路径的数据结构4.3 边的松弛4.4 顶点的松弛 结语 1 最短路径 如图1-1所示,一幅加权有向图和其中的一条最短路径: 定义&…

加强人工智能共性技术研发与产业化协同发展

央视网消息:“以5G为代表的新一代信息技术与制造业、交通、旅游等实体经济重要领域深度融合。”4月20日下午,国新办举行一季度工业和信息化发展情况新闻发布会,相关部门负责人在答问时表示,将用好融合应用这把金钥匙,开…

基于matlab仿真相控天线阵列在波束成形MIMO-OFDM系统中的使用

一、前言 本例显示了相控阵在采用波束成形的MIMO-OFDM通信系统中的使用。它使用通信工具箱和相控阵系统工具箱中的组件,对组成发射器和前端接收器组件的辐射元件进行建模,用于MIMO-OFDM通信系统。使用用户指定的参数,您可以根据不同空间位置和…

JAVA Future类详解及Thread线程是如何运行Future类的

一、Future基本介绍 Future(java.util.concurrent Interface Future<V>)表示异步计算的结果。Future接口提供了检查计算是否完成、检查计算是否被取消、等待计算完成并获取计算结果等方法。 在并发编程中&#xff0c;我们经常用到非阻塞的模型&#xff0c;但继承thread类…

202303-1 田地丈量

代码 #include<iostream> #include<vector> #include<string> #include<cmath> #include<algorithm> #include<stack> using namespace std; int n, a, b;int main() {cin >> n >> a >> b;int x1, y1, x2, y2;int x, y;…

网络基础之网络传输基本流程

网络基础 此小节介绍网络基础概念 首先要明确的是 网络是层状结构&#xff01;分层->OP->解耦 网络发展&#xff1a;最早的时候&#xff0c;每台计算机之间是相互独立的。后续发展到网络互联&#xff0c;就是将多台计算机连接在一起&#xff0c;完成数据共享。 协议&…

19.Java文件操作---I/O流

Java文件操作—I/O流 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中&#xff0c;管道是一条不间断的字节流&#xff0c;用来实现程序或进程间的通信&#xff0c;或读写外围设备、外部文件等。一个流&#xff0c;必有源端和目的端&#xff0c;它们可以是计算机内存的某…