unique

package module
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2019 License: MIT Imports: 7 Imported by: 5

README

unique Build Status Build status

用于生成一个唯一字符串

// 生成由数字和字母组成的唯一字符串,比如 p4k5f81
unique.String().String()

// 生成由数字组成的唯一字符串,比如 15193130121
unique.Number().String()

// 生成由日期与数字组成的唯一字符串,比如 20180222232332-1
unique.Date().String()

// 或者可以自定义一个 Unique 实例
u := unique.New(time.Now().Unix(), 2, 60, "20060102150405-", 10)
u.String() // 生成唯一字符串。
安装
go get github.com/issue9/unique
文档

Go Walker GoDoc

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。

Documentation

Overview

Package unique 产生一个唯一字符串

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Rands added in v1.1.0

type Rands struct {
	Unique *Unique
	Rands  *rands.Rands
}

Rands 生成唯一的随机字符串

相对于 Unqiue,Rands 更有随机性。

func (*Rands) Bytes added in v1.1.0

func (r *Rands) Bytes() []byte

Bytes 返回 []byte 内容

func (*Rands) String added in v1.1.0

func (r *Rands) String() string

String 返回字符串内容

type Unique

type Unique struct {
	// contains filtered or unexported fields
}

Unique 基于时间戳的唯一字符串,长度不固定。

NOTE: 算法是基于系统时间的。所以必须得保证时间上正确的,否则可能会造成非唯一的情况。 NOTE: 产生的数据有一定的顺序性,不适合做 token 等需要完全随机的唯一值。

Unique 由两部分组成: 前缀是由一个相对稳定的字符串,与时间相关联; 后缀是一个自增的数值。

每次刷新前缀之后,都会重置后缀的计数器,从头开始。 刷新时间和计数器的步长都是一个随机数。

func Date

func Date() *Unique

Date 初始化一个以日期形式表示唯一值的 Unique 实例,大致格式如下:

20180222232332-1

NOTE: 多次调用,返回的是同一个实例。

func New

func New(seed, step, duration int64, prefixFormat string, base int) *Unique

New 声明一个新的 Unique。

seed 随机种子; step 计数器的最大步长,只能大于 0; duration 计数器的最长重置时间,单位秒。系统会在 [1,duration] 范围内重置计数器; prefixFormat 格式化 prefix 的方式,若指定,则格式化为时间,否则将时间戳转换为数值。 base 数值转换成字符串时,所采用的进制,可以是 [2,36] 之间的值。

func Number

func Number() *Unique

Number 初始化一个数字形式表示唯一值的 Unique 实例,大致格式如下:

15193130121

NOTE: 多次调用,返回的是同一个实例。

func String

func String() *Unique

String 初始化一个以字符串形式表示唯一值的 Unique 实例,大致格式如下:

p4k5f81

NOTE: 多次调用,返回的是同一个实例。

func (*Unique) Bytes

func (u *Unique) Bytes() []byte

Bytes 返回 String() 的 []byte 格式

在多次出错之后,可能会触发 panic

func (*Unique) String

func (u *Unique) String() string

String 返回一个唯一的字符串

Jump to

Keyboard shortcuts

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