「Go工具箱」将文件大小转换成Kb、Mb、Gb就用这个库:go-humanize
2023-02-26 09:48:45 时间
大家好,我是渔夫子。本号新推出「Go工具箱」系列,意在给大家分享使用go语言编写的、实用的、好玩的工具。同时了解其底层的实现原理,以便更深入地了解Go语言。
相信大家一定遇到过将文件大小的字节数转换成KB、MB或GB的场景。今天就给大家推荐这样一个转换工具。它能将数字、时间转换成更人性化可读的函数库:go-humanize。以下是go-humanize的基本情况:
go-humanize小档案 | |||
---|---|---|---|
star | 3.3k | used by | 20.2k |
contributors | 23 | 工具分类 | 效率 |
功能简介 | 将时间、数字更人性化展示的函数库。比如将数字按千分位展示;字节大小转换成KB、MB、GB等 |
基本使用
- 将字节和更大的单位(kB、MB、GB、TB等)互转
// 将字节转换成MB
fmt.Printf("That file is %s.", humanize.Bytes(82854982)) // That file is 83 MB.
//解析MB为字节
size, _ := humanize.ParseBytes("42 MB") // size is 42000000, nil
- 将时间转换成相对时间
例如,可以将一个时间转换成类似于12 seconds ago 或 3 days from now。如下:
// This was touched 7 hours ago.
fmt.Printf("This was touched %s.", humanize.Time(someTimeInstance))
- 将数字转换成序数
例如将1转换成第1st个,2转换成第2nd个:
0 -> 0th
1 -> 1st
2 -> 2nd
3 -> 3rd
4 -> 4th
[...]
转换代码如下:
// You are my 193rd best friend.
fmt.Printf("You're my %s best friend.", humanize.Ordinal(193))
- 将数字转换成千分位
0 -> 0
100 -> 100
1000 -> 1,000
1000000000 -> 1,000,000,000
-100000 -> -100,000
转码代码如下:
// You owe $6,582,491.
fmt.Printf("You owe $%s.\n", humanize.Comma(6582491))
更多项目详情请查看如下链接。
开源项目地址:https://github.com/dustin/go-humanize
开源项目作者:Dustin Sallings
---特别推荐---
特别推荐:一个专注go项目实战、项目中踩坑经验及避坑指南、各种好玩的go工具的公众号,「Go学堂」,专注实用性,非常值得大家关注。点击下方公众号卡片,直接关注。关注送《100个go常见的错误》pdf文档。
相关文章
- 编译效率快三倍,使用WSL2编译OpenHarmony嘎嘎得劲!
- Firefox 开发商 Mozilla 称苹果谷歌微软操作系统锁定浏览器,限制用户自由选择
- Linux之父是个果粉:给M2 Mac装上Fedora Linux,搞定编译和打补丁
- 代码覆盖率在性能优化上的一种可行应用
- Docker笔记:一篇学会Docker网络知识
- 如何通过替换Full-SDK解决找不到部分API
- Windows 11开发预览版 Build 25206 发布:外部显示器新增动态刷新率功能
- 我们一起聊聊操作系统
- FreeDOS 的 16 种颜色的由来
- Windows 11 2022更新,创新含量超高
- 火狐 Firefox 浏览器 105 正式版发布:Windows / Linux 版性能显著提升
- 微软:Windows 11 / Microsoft 365 未来三年内可为企业节省数百万美元,别等 Windows 10 更新了
- 跨系统数据一致性问题经验实战
- 秒懂算法—动态规划的核心思想
- “银行家算法”大揭秘!在前端表格中利用自定义公式实现“四舍六入五成双”
- 你有犯过这些 Go 编码错误吗?
- 如何使用 WireGuard 组建非对称路由
- 面试突击:死锁产生的原因有哪些?
- 谈到网络安全,不能忽视Linux系统
- DAYU200升级最新的OpenHarmony系统,一起来玩开源鸿蒙呀!