zl程序教程

您现在的位置是:首页 >  其他

当前栏目

「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文档。