- add random func
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details

master v1.0.9
李光春 2 years ago
parent 0626f9f0f3
commit 266edec86a

@ -1,3 +1,3 @@
package gostring package gostring
const Version = "1.0.8" const Version = "1.0.9"

@ -7,8 +7,15 @@ import (
// GenerateRandom 生成count个长度length不重复的随机数 // GenerateRandom 生成count个长度length不重复的随机数
func GenerateRandom(length, count int) []int { func GenerateRandom(length, count int) []int {
return GenerateRandomFunc(length, count, func(num int) bool {
return false
})
}
// GenerateRandomFunc 生成count个长度length不重复的随机数支持外部查询
func GenerateRandomFunc(length, count int, dFun func(num int) bool) []int {
fI := 0 var fI int = 0
startStr := "1" startStr := "1"
endStr := "9" endStr := "9"
@ -22,11 +29,11 @@ func GenerateRandom(length, count int) []int {
fI = fI + 1 fI = fI + 1
} }
return GenerateRandomNumber(ToInt(startStr), ToInt(endStr), count) return GenerateRandomNumber(ToInt(startStr), ToInt(endStr), count, dFun)
} }
// GenerateRandomNumber 生成count个[start,end)结束的不重复的随机数 // GenerateRandomNumber 生成count个[start,end)结束的不重复的随机数
func GenerateRandomNumber(start, end, count int) []int { func GenerateRandomNumber(start, end, count int, dFun func(num int) bool) []int {
// 范围检查 // 范围检查
if end < start || (end-start) < count { if end < start || (end-start) < count {
@ -53,7 +60,10 @@ func GenerateRandomNumber(start, end, count int) []int {
} }
if !exist { if !exist {
nums = append(nums, num) isExist := dFun(num)
if isExist == false {
nums = append(nums, num)
}
} }
} }

Loading…
Cancel
Save