base36

package
v0.0.0-...-0d9f38a Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package base36 实现混合字母和数字的数字型 ID 值, 这主要是为了便于人为设定一个可读友好的字符串, 同时又能转换为数字的 ID 存储。不区分大小写, 最多 10 个字符

Index

Constants

View Source
const Float64PrecisionSize = 10

Float64PrecisionSize IEEE 754 双精度浮点数不会丢失的精度。推荐使用这个值

View Source
const MaxID = 3656158440062975 // ZZZZZZZZZZ

MaxID ID 最大值

Variables

This section is empty.

Functions

func Atoi

func Atoi[N Double](s string) (N, error)

Atoi 将一个 string 转为数字值

func Itoa

func Itoa[N Double](id N) string

Itoa 将一个 id 转为 string 类型

func QuirkyAtoi32

func QuirkyAtoi32(id string) (uint32, error)

QuirkyAtoi32 是 QuirkyItoa32 的逆操作

func QuirkyItoa32

func QuirkyItoa32(id uint32) string

QuirkyItoa32 同 RevEndianItoa32 类似, 也是为了避免暴露自增 id, 但不同的是, 这个函数将 uint32 进行大小端变换之后, 再在最高位加 1, 避免出现字符串过短的情况

func RevEndianAtoi32

func RevEndianAtoi32(id string) (uint32, error)

RevEndianAtoi32 是 RevEndianItoa32 的逆操作

func RevEndianAtoi64

func RevEndianAtoi64(id string) (uint64, error)

RevEndianAtoi64 是 RevEndianItoa64 的逆操作

func RevEndianItoa32

func RevEndianItoa32(id uint32) string

RevEndianItoa32 为了避免暴露出自增 id 的本质, 将一个 uint32 类型值颠倒大小端之后再进行 base36 转为 string。当然缺点是数字越大, 字符串反而越短

func RevEndianItoa64

func RevEndianItoa64(id uint64) string

RevEndianItoa64 为了避免暴露出自增 id 的本质, 将一个 uint64 类型值颠倒大小端之后再进行 base36 转为 string。当然缺点是数字越大, 字符串反而越短

Types

type Double

type Double interface {
	~float64 | ~int64 | ~uint64
}

Double 表示支持的数据类型

Jump to

Keyboard shortcuts

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