Documentation
¶
Overview ¶
本文件实现了 Snowflake 算法,用于生成分布式唯一 ID。 Snowflake 算法通过时间戳、节点编号和序列号组合生成 64 位唯一 ID。
Index ¶
- Variables
- type ID
- func ParseBase2(id string) (ID, error)
- func ParseBase32(b []byte) (ID, error)
- func ParseBase36(id string) (ID, error)
- func ParseBase58(b []byte) (ID, error)
- func ParseBase64(id string) (ID, error)
- func ParseBytes(id []byte) (ID, error)
- func ParseInt64(id int64) ID
- func ParseIntBytes(id [8]byte) ID
- func ParseString(id string) (ID, error)
- func (f ID) Base2() string
- func (f ID) Base32() string
- func (f ID) Base36() string
- func (f ID) Base58() string
- func (f ID) Base64() string
- func (f ID) Bytes() []byte
- func (f ID) Int64() int64
- func (f ID) IntBytes() [8]byte
- func (f ID) MarshalJSON() ([]byte, error)
- func (f ID) Node() int64
- func (f ID) Step() int64
- func (f ID) String() string
- func (f ID) Time() int64
- func (f *ID) UnmarshalJSON(b []byte) error
- type JSONSyntaxError
- type Node
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // Epoch 表示 Snowflake 算法的起始时间戳,单位为毫秒。 // 默认为 Twitter Snowflake 的起始时间 2025-02-25 20:25:25 UTC。 // 可根据实际业务需求自定义。 Epoch int64 = 1740515125000 // NodeBits 表示节点编号占用的比特数。 // 节点编号和序列号总共最多占用 22 位。 NodeBits uint8 = 10 // StepBits 表示序列号占用的比特数。 // 节点编号和序列号总共最多占用 22 位。 StepBits uint8 = 12 )
View Source
var ( // ErrInvalidBase58 表示解析 Base58 编码时遇到非法数据。 ErrInvalidBase58 = errors.New("invalid base58") // ErrInvalidBase32 表示解析 Base32 编码时遇到非法数据。 ErrInvalidBase32 = errors.New("invalid base32") )
Functions ¶
This section is empty.
Types ¶
type ID ¶
type ID int64
ID 类型用于表示 Snowflake 生成的唯一 ID。
func ParseBase32 ¶
ParseBase32 将 base32 字节切片转为 ID 类型。 注意:不同实现的 base32 可能不兼容,跨系统需谨慎。
入参:
- b :[]byte。
返回值:
- ID :转换后的 ID。
- error :错误信息。
func (ID) Base32 ¶
Base32 返回当前 ID 的 z-base-32 编码字符串。 注意:不同实现的 base32 可能不兼容,跨系统需谨慎。
返回值:
- string :ID 的 base32 编码字符串。
func (*ID) UnmarshalJSON ¶
UnmarshalJSON 实现 JSON 反序列化,将字符串转为 ID。
入参:
- b :[]byte,JSON 字节数组。
返回值:
- error :错误信息。
type JSONSyntaxError ¶
type JSONSyntaxError struct {
// contains filtered or unexported fields
}
JSONSyntaxError 表示 JSON 反序列化时遇到非法 ID 的错误类型。
func (JSONSyntaxError) Error ¶
func (j JSONSyntaxError) Error() string
Error 返回 JSONSyntaxError 的错误描述。
返回值:
- string :错误描述字符串。
Click to show internal directories.
Click to hide internal directories.