units

package
v0.19.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

* @Author: kamalyes 501893067@qq.com * @Date: 2025-06-17 13:15:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-06-17 13:55:17 * @FilePath: \go-toolbox\pkg\units\constants.go * @Description: 单位常量及单位映射定义 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2025-06-17 13:15:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-06-18 11:35:38 * @FilePath: \go-toolbox\pkg\units\format.go * @Description: 单位格式化相关函数 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.

Index

Constants

View Source
const (
	// 十进制单位,基于1000的倍数
	KB = 1000
	MB = KB * KB
	GB = KB * MB
	TB = KB * GB
	PB = KB * TB

	// 二进制单位,基于1024的倍数
	KiB = 1024
	MiB = KiB * KiB
	GiB = KiB * MiB
	TiB = KiB * GiB
	PiB = KiB * TiB
)

Variables

View Source
var (
	// 十进制单位映射表
	DecimalMap = unitMap{'k': KB, 'm': MB, 'g': GB, 't': TB, 'p': PB}
	// 二进制单位映射表
	BinaryMap = unitMap{'k': KiB, 'm': MiB, 'g': GiB, 't': TiB, 'p': PiB}
)
View Source
var (
	// 十进制单位缩写数组,用于格式化输出
	DecimalAbbrs = []string{"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"}
	// 二进制单位缩写数组,用于格式化输出
	BinaryAbbrs = []string{"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"}
)
View Source
var (
	ErrInvalidSizeFormat = errors.New("无效的大小格式")
	ErrNegativeSize      = errors.New("大小不能为负数")
	ErrInvalidUnitSuffix = errors.New("无效的单位后缀")
)

定义错误变量,方便统一管理和复用

Functions

func BytesSize

func BytesSize(size float64) string

BytesSize 格式化大小,使用二进制单位(1024进制) 例如:"22KiB", "17MiB"

func CustomSize

func CustomSize(format string, size float64, base float64, unitAbbrs []string) string

CustomSize 使用自定义格式字符串格式化大小,支持指定单位基数和单位列表。 例如:CustomSize("%.2f %s", 1234567, 1000, DecimalAbbrs)

func FormatBytes

func FormatBytes(bytes uint64) string

FormatBytes 格式化字节数为可读字符串

func HumanSize

func HumanSize(size float64) string

HumanSize 格式化大小,默认4位有效数字,使用十进制单位(1000进制)

func HumanSizeWithPrecision

func HumanSizeWithPrecision(size float64, precision int) string

HumanSizeWithPrecision 格式化大小,支持指定有效数字精度,使用十进制单位(1000进制)

func ParseBytes

func ParseBytes(size string) (uint64, error)

ParseBytes 解析字节大小字符串(支持二进制和十进制单位) 示例:ParseBytes("1GB") -> 1073741824 (使用二进制单位 1 GiB)

ParseBytes("512MB") -> 536870912
ParseBytes("2048KB") -> 2097152

func ParseSizeBinary

func ParseSizeBinary(size string) (int64, error)

ParseSizeBinary 解析二进制单位格式的字符串(如 "22KiB", "17MiB"),返回对应字节数

func ParseSizeDecimal

func ParseSizeDecimal(size string) (int64, error)

ParseSizeDecimal 解析十进制单位格式的字符串(如 "22kB", "17MB"),返回对应字节数

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL