size
2023年7月15日大约 2 分钟
size
dstgo/size 是一个很方便的将字符串与文件大小相互转换的库
仓库地址:dstgo/size: Fast conversion between file size and string (github.com)
文档地址:dstgo/size: Fast conversion between file size and string (github.com)
安装
$ go get https://github.com/dstgo/size使用
const (
  B  Size = 1
  KB      = B * 1024
  MB      = KB * 1024
  GB      = MB * 1024
  TB      = GB * 1024
  PB      = TB * 1024
)type SizeMeta struct {
  Data float64
  Unit Size
}该库使用起来相当简单,只有两个对外暴露的函数
func ParseSize(str string) SizeMetaParseSize将字符串转换成一个SizeMeta结构体,存储了数据大小,以及单位大小
func ParseTargetSize(str string, size Size) SizeMetaParseTargetSize将字符串转换成指定大小的SizeMeta
示例如下:
package main
import (
  "fmt"
  "github.com/dstgo/size"
)
func main() {
  parseSize := size.ParseSize("1.2MB")
  fmt.Printf("%+v\n", parseSize)
  fmt.Printf("%+v\n", parseSize.Round(1))
  parseSize1 := size.ParseSize("2.3-asdajl")
  fmt.Printf("%+v\n", parseSize1)
  targetSize := size.ParseTargetSize("2.65MB", size.KB)
  fmt.Printf("%+v", targetSize)
  fmt.Printf("%+v", targetSize.String())
}转换后可以使用Round方法来修改保留多少位,也可以使用String方法来获取其字符串形式,示例输出如下
1.20MB
1.2
2713.60KB