本人自定义的GO包说明【实用,建议收藏】

news/2024/10/3 14:27:56 标签: golang, 开发语言, 后端

项目地址:https://gitee.com/zht639/my_gopkg

自定义的golang包含许多实用和方便的功能,以下是使用说明和包的介绍。注意:包可能会更新,具体请看上方链接

一、使用说明

1.本地调用

打开项目根目录,在该目录下打开命令行,然后按如下步骤操作。

(1)初始化本地mod(有则跳过此步)

go mod init 你的模块名

(2)下载到本地(若之前就下载过,请忽略此步,转至第四步)

go get gitee.com/zht639/my_gopkg

(3)在go文件中导包即可

import "你的模块名/我的包名"

(4)若之前就下载过我的包,则需要打开mod,删除require语句,再执行如下指令

go mod tidy

2.单元测试

每个包下都有测试文件,每个测试文件都会测试多个函数,读者可在包目录下执行如下命令,一键测试所有函数:

go test ./...

若要测试其中一个,命令是:

go test -run 函数名 ./包名

当然,这样做比较麻烦,IDE对于测试文件一般都有启动按钮,点击即可逐个启动函数。

二、包的介绍

1.strtrans

用于字符串和基本类型的相互转换,ToString()可将任意基本类型转为字符串,包括单个ASCII字符和非ASCII字符(如汉字)的转换。ToInt(),ToFloat(),ToBool()可将任意合法的字符串转为基本类型。注意,ToString()不处理float32,而是由Float32ToStr()处理,但存储小数建议用float64,不会出错。

2.rwtxt

批量读取多个txt文件的内容到内存,或批量保存内存变量到一个txt,适用于基于命令行的管理系统。注意,该包用到了泛型技术:[T any],适用于go1.18及以上版本。

ReadFromTXT()将txt每行的内容看作是一个结构体的字段,将每行的内容都保存到结构体,最后返回结构体切片。调用例子如下:

Data, err := ReadFromTXT[TestStruct](filiepath)

其中TestStruct是用户自定义的结构体,data是结构体切片,filepath是txt文件路径。

ReadFromALLTXT()遍历当前目录下所有txt,然后对每个txt调用ReadFromTXT(),最后返回二维结构体切片。调用例子除了函数名之外,和ReadFromTXT()一样。

Save2TXT()将传入的结构体切片中的内容取出,依次写入txt,调用例子如下:

err := Save2TXT(filePath, dataToSave)

其中dataToSave是需要保存的内容,类型为结构体切片。

注意:

1.txt每行的字段默认以空格隔开,如想修改可在本地跳转到源码修改,但这对读写数据没有影响,不建议修改。
2.结构体的内容默认是基本类型,如果有组合类型,需要读者分别定义结构体,再调用函数。比如基本类型和切片组合,则需要定义另一个结构体保存切片的元素类型。


http://www.niftyadmin.cn/n/5688522.html

相关文章

关于 Latex 使用 BibTeX 进行参考文献管理的相关

关于 Latex 使用 BibTeX 进行参考文献管理, 可以参考下面的文章: 参考文献 使用 BibTeX 进行参考文献管理: https://www.castamerego.com/docs/Latex/Reference上面文章中提到了 \bibpunct{[}{]}{;}{s}{,}{,} % 第一,二个参数为括号样式,可以换成小括号…

深入Volatile

深入Volatile 1、变量不可见性: 1.1多线程下变量的不可见性 直接上代码 /*** author yourkin666* date 2024/08/12/16:12* description*/ public class h1 {public static void main(String[] args) {MyClass myClass new MyClass();myClass.start();while (tr…

容器适配器-stack、queue、priority_queue和仿函数

目录 1.什么是适配器 2.deque 1.简单了解结构 2.deque的缺陷 3.为什么选择deque作为stack和queue的底层默认容器 3.stack(栈) 4.queue(队列) 5.仿函数 6.priority_queue(优先级队列)(堆…

Tiny Transformer:从零开始构建简化版Transformer模型

引言 自然语言处理(NLP)与计算机视觉(CV)有显著差异,各自任务的独特性决定了它们适用的模型架构。在CV中,卷积神经网络(CNN)长期占据主导地位,而在NLP领域,循…

物流行业中的AI平台架构与智能化应用

随着物流行业的迅速发展,尤其是电商、仓储、运输的需求日益增多,AI技术逐渐成为推动物流企业高效运营、提升服务水平的关键力量。AI平台架构为物流行业的各个环节提供了智能化解决方案,助力物流企业在仓储管理、运输调度、客户服务等方面实现…

重生之我们在ES顶端相遇第 18 章 - Script 使用(进阶)

文章目录 0. 前言1. 基本使用2. 读请求中访问文档字段2.1 遍历 List2.2 判断对象存不存在2.3 判断值是否为空2.4 总结 3. 写请求中访问文档字段3.1 数字相加3.2 字符串相加3.3 将字符串转为数组 0. 前言 在前面部分,我们介绍了 ES 的基本使用和要掌握的基础性读写原…

微信小程序数据操作指南:从绑定到更新

微信小程序数据操作指南:从绑定到更新 在微信小程序开发中,数据操作是核心环节之一。微信小程序提供了一系列简洁而强大的数据操作方法,帮助开发者轻松实现数据的绑定、更新和渲染。本文将详细介绍微信小程序中常用的数据操作方法&#xff0…

MySQL 启动失败 (code=exited, status=1/FAILURE) 异常解决方案

目录 前言1. 问题描述2. 查看错误日志文件2.1 确认日志文件路径2.2 查看日志文件内容 3. 定位问题3.1 问题分析 4. 解决问题4.1 注释掉错误配置4.2 重启 MySQL 服务 5. 总结结语 前言 在日常运维和开发过程中,MySQL数据库的稳定运行至关重要。然而,MySQ…