| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- package util
- import (
- "math/rand"
- "strconv"
- "time"
- )
- func Uint642String(num uint64) string {
- return strconv.FormatUint(num, 10)
- }
- func StringSecToDuration(str string, defaultValue ...string) time.Duration {
- result := String2Int64(str)
- if result == 0 {
- if defaultValue == nil || len(defaultValue) == 0 {
- return 0
- }
- result = String2Int64(defaultValue[0])
- }
- return time.Second * time.Duration(result)
- }
- func String2Uint64(nums string, defaultValue ...uint64) uint64 {
- loadDefaultValue := func() uint64 {
- if defaultValue == nil || len(defaultValue) == 0 {
- return 0
- }
- return defaultValue[0]
- }
- if nums == "" {
- return loadDefaultValue()
- }
- num, err := strconv.ParseUint(nums, 10, 64)
- if err != nil {
- // 异常,直接
- return loadDefaultValue()
- }
- return num
- }
- func Int642String(num int64) string {
- return strconv.FormatInt(num, 10)
- }
- func String2Int64(nums string, defaultValue ...int64) int64 {
- loadDefaultValue := func() int64 {
- if defaultValue == nil || len(defaultValue) == 0 {
- return 0
- }
- return defaultValue[0]
- }
- if nums == "" {
- return loadDefaultValue()
- }
- num, err := strconv.ParseInt(nums, 10, 64)
- if err != nil {
- return loadDefaultValue()
- }
- return num
- }
- func String2Int(nums string, defaultValue ...int) int {
- loadDefaultValue := func() int {
- if defaultValue == nil || len(defaultValue) == 0 {
- return 0
- }
- return defaultValue[0]
- }
- if nums == "" {
- return loadDefaultValue()
- }
- num, err := strconv.ParseInt(nums, 10, 64)
- if err != nil {
- return loadDefaultValue()
- }
- return int(num)
- }
- func Int2String(num int) string {
- return strconv.FormatInt(int64(num), 10)
- }
- func String2Bool(str string, defaultValue ...bool) bool {
- loadDefaultValue := func() bool {
- if defaultValue == nil || len(defaultValue) == 0 {
- return false
- }
- return defaultValue[0]
- }
- b, err := strconv.ParseBool(str)
- if err != nil {
- return loadDefaultValue()
- }
- return b
- }
- func String2Float64(str string, defaultValue ...float64) float64 {
- loadDefaultValue := func() float64 {
- if defaultValue == nil || len(defaultValue) == 0 {
- return 0
- }
- return defaultValue[0]
- }
- b, err := strconv.ParseFloat(str, 64)
- if err != nil {
- return loadDefaultValue()
- }
- return b
- }
- // 除固定值,保留固定小数位
- func Float642String(num float64, saveDecimalPoint int) string {
- return strconv.FormatFloat(num, 'f', saveDecimalPoint, 64)
- }
- /**
- 比率限制,如果=0关闭,如果等于100全量
- */
- func Rate100(threshold int64) bool {
- return RateInNum(threshold, 100)
- }
- /**
- 比率限制,如果=0关闭,如果等于100全量
- */
- func RateInNum(threshold int64, totalSize int64) bool {
- return threshold > rand.Int63n(totalSize) // 0-99
- }
|