- init
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details

master v1.0.0
李光春 2 years ago
commit c5280523ca

@ -0,0 +1,17 @@
kind: pipeline
type: docker
name: clone
steps:
- name: Test
image: golang:1.18
commands:
- go env -w GO111MODULE=on
- go env -w GOPROXY=https://goproxy.cn,direct
- go test -v ./...
- name: Benchmark
image: golang:1.18
commands:
- go env -w GO111MODULE=on
- go env -w GOPROXY=https://goproxy.cn,direct
- go test -bench=. -benchmem

9
.gitignore vendored

@ -0,0 +1,9 @@
.env
.git
.svn
.idea
.vscode
*.log
goinit.sh
gomod.sh
/vendor/

@ -0,0 +1,3 @@
module go.dtapp.net/gorandom
go 1.18

@ -0,0 +1,50 @@
package gorandom
import (
"math/rand"
"time"
)
const numbers string = "0123456789"
const letters string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
const specials = "~!@#$%^*()_+-=[]{}|;:,./<>?"
const alphanumerics string = letters + numbers
const ascii string = alphanumerics + specials
func random[T int | int64](n T, chars string) string {
if n <= 0 {
return ""
}
r := rand.New(rand.NewSource(time.Now().UnixNano()))
bytes := make([]byte, n, n)
l := len(chars)
var i T = 0
for {
if i >= n {
break
}
bytes[i] = chars[r.Intn(l)]
i++
}
return string(bytes)
}
// Alphanumeric 随机字母数字
func Alphanumeric[T int | int64](n T) string {
return random(n, alphanumerics)
}
// Alphabetic 随机字母
func Alphabetic[T int | int64](n T) string {
return random(n, letters)
}
// Numeric 随机数字
func Numeric[T int | int64](n T) string {
return random(n, numbers)
}
// Ascii 随机ASCII
func Ascii[T int | int64](n T) string {
return random(n, ascii)
}

@ -0,0 +1,3 @@
package gorandom
const Version = "1.0.0"

@ -0,0 +1,7 @@
package gorandom
import "testing"
func TestVersion(t *testing.T) {
t.Log(Version)
}
Loading…
Cancel
Save