gookit/goutil Go 常用的一些工具函数,数字,字符串,数组,Map,文件,错误,时间日期,特殊处理,格式化,常用信息获取等等

工具包

  • arrutil array/slice 相关操作的函数工具包. 如:类型转换,元素检查等等
  • dump 简单的变量打印工具,打印 slice, map 会自动换行显示每个元素,同时会显示打印调用位置
  • cliutil CLI 的一些工具函数包. eg: read input, exec command, cmdline parse/build
  • errorx 为 go 提供增强的错误实现,允许带有堆栈跟踪信息和包装另一个错误。
  • envutil ENV 信息获取判断工具包. eg: get one, get info, parse var
  • fsutil 文件系统操作相关的工具函数包. eg: file and dir check, operate
  • maputil map 相关操作的函数工具包. eg: convert, sub-value get, simple merge
  • mathutil, numutil int/number 相关操作的函数工具包. eg: convert, math calc, random
  • netutil/httpreq 包装 http.Client 实现的更加易于使用的HTTP客户端
  • strutil string 相关操作的函数工具包. eg: bytes, check, convert, encode, format and more
  • sysutil system 相关操作的函数工具包. eg: sysenv, exec, user, process
  • testutil test help 相关操作的函数工具包. eg: http test, mock ENV value
  • timex 提供增强的 time.Time 实现。添加更多常用的功能方法
    • 例如: DayStart(), DayAfter(), DayAgo(), DateFormat() 等等

Git 仓库

  • Github: https://github.com/gookit/goutil
  • Gitee: https://gitee.com/gookit/goutil

安装工具包

go get github.com/gookit/goutil

工具包使用

goutil/dump

goutil/dump - 是一个golang数据打印工具包,可以打印出漂亮易读的go slice, map, struct数据。

使用示例:

//   go run ./dump/_examples/struct.go
func main() {s1 := &struct {cannotExport map[string]interface{}}{cannotExport: map[string]interface{}{"key1": 12,"key2": "abcd123",},}s2 := struct {ab stringCd int}{"ab", 23,}color.Infoln("- Use fmt.Println:")fmt.Println(s1, s2)color.Infoln("\n- Use dump.Println:")dump.P(s1,s2)
}

打印效果:

goutil/timex

goutil/timex 提供增强的 time.Time 实现。添加更多常用的功能方法。例如: DayStart(), DayAfter(), DayAgo(), DateFormat() 等等

创建 timex 实例

now := timex.Now()// from time.Time
tx := timex.New(time.Now())
tx := timex.FromTime(time.Now())// from time unix
tx := timex.FromUnix(1647411580)

从日期时间字符串创建:

// auto match layout by datetime
tx, err  := timex.FromString("2022-04-20 19:40:34")
// custom set the datetime layout
tx, err  := timex.FromString("2022-04-20 19:40:34", "2006-01-02 15:04:05")
// use date template as layout
tx, err  := timex.FromDate("2022-04-20 19:40:34", "Y-m-d H:I:S")

获取时间:

tx := timex.Now()tx.Yesterday()
tx.Tomorrow()tx.DayStart() // get time at Y-m-d 00:00:00
tx.DayEnd() // get time at Y-m-d 23:59:59
tx.HourStart() // get time at Y-m-d H:00:00
tx.HourEnd() // get time at Y-m-d H:59:59tx.AddDay(2)
tx.AddHour(1)
tx.AddMinutes(15)
tx.AddSeconds(120)

格式化时间:

tx.DateFormat("y/m/d H:I")
date := tx.DateFormat("Y-m-d H:I:S") // Output: 2022-04-20 19:40:34
date = tx.DateFormat("y-m-d H:I:S") // Output: 22-04-20 19:40:34

更多工具包

更多工具和使用请查看 README

gookit/goutil - Go一些常用的工具函数实现、增强、收集和整理相关推荐

  1. 关于Vue中常用的工具函数封装

    ## Vue 项目中工具函数,我们通常会添加到Vue的原型中,这样就实现了全局函数 import Vue from 'vue' Vue.prototype.$tools = function (){} ...

  2. JavaScript常用的工具函数,不全面大家补充哦

    JavaScript常用的工具函数,不全面大家补充哦 目录 博主介绍

  3. 前端常用Utils工具函数库合集

    前端常用Utils工具函数库合集 在开发中,我们经常会将一些常用的代码块.功能块进行封装,为的是更好的复用.那么,被抽离出来独立完成功能,通过API或配置项和其他部分交互,便形成了插件. 函数库 Lo ...

  4. 一些常用的工具函数(snows-utils),已发npm,会陆续更新

    简介:一些常用的自定义方法 **注意:请用最新版本(之前的有些版本有小问题,目前没有找到删除指定的版本的方法)        v2.0.0之前的版本都是没有通过webpack打包的,文件相对于2.0. ...

  5. python常用的工具函数

    1.zip:接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表. 如: a = [1,2] b = [3,4] c = dict(zip(a, b)) print c 结果: {1: ...

  6. vue一些常用的工具函数封装

    (防抖 节流 深拷贝 数组对象去重 前端uuid生成,文件下载等函数封装) 1.校验数据类型 export const typeOf = function(obj) {return Object.pr ...

  7. C语言常用的工具函数(FM0编码发送函数)

    FM0导引头及0-1对应编码为: #define YES 1 //翻转 #define NO 0 //不翻 #define HEADER_LEN 18//FM0 HEADER #define RN16 ...

  8. 从零开始学习jQuery (九) jQuery工具函数

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  9. 从零开始学习jQuery (九) jQuery工具函数 【转】

    一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍. 我们经常要使用脚本处理各种业务逻辑, 最常见的就 ...

最新文章

  1. DDD领域驱动之干货(二)
  2. java用流体加减乘除_任意输入两个数,完成加法、减法、乘法、除法运算!(加减乘除运算分别定义四个方法)_学小易找答案...
  3. C# 使用HttpWebRequest通过PHP接口 上传文件
  4. 基于python的聊天室_Python实现文字聊天室
  5. 微信小程序实现分类菜单 swiper分类菜单
  6. docker es持久化_Docker 搭建 ES 集群并整合 Spring Boot
  7. 用Flask封装下Ansible提供后端API
  8. [Android] 环境优化配置Android Studio发展NDK
  9. 留个坑,不知道为什么sqlite3要求组权限才能执行db:migrate,而可以直接执行db:......
  10. 解决Appium-windows安装时无法自动下载Appium-Desktop
  11. 【WPS文档】Shift+F3:切换英文大小写格式的快捷键
  12. ubuntu 18.04.2的初步配置
  13. Scrum板与Kanban如何抉择?敏捷工具:SHSYdsjgyadtgad
  14. php网页制作过程,网页制作步骤
  15. 最牛黑科技!一度电能跑1230公里的电动车
  16. python代码中的中文语法错误:SyntaxError: Non-ASCII character ‘\xe5‘ in file trade.py on line 7
  17. 什么是排序算法的稳定性
  18. 简单爬虫+ 线程+SQL+网页
  19. linux网络配置ifconfig
  20. JavaMail 访问Hotmail

热门文章

  1. vue 实战 之 饿了吗 页头模板
  2. EVB_Air724UG_A13开发板使用指南
  3. openwrt旁路由设置的正确方式
  4. 邮件被服务器退信是怎么了,发向这个地址总是被退信,请教怎么解决
  5. 更改思科模拟器packet tracer图标大小
  6. 基于51单片机温湿度检测采集系统无线蓝牙APP上传方案原理图设计
  7. 刷题记录:牛客NC201612I love you
  8. 扫描文档PDF创建目录
  9. 2020年,10个让人深思的问题
  10. 红黑树是什么?红黑树的作用?红黑树的调整?