为了账号安全,请及时绑定邮箱和手机立即绑定

我应该如何更改解析方法或更正随机方法

我应该如何更改解析方法或更正随机方法

Go
侃侃无极 2022-06-27 09:30:00
我想生成一个随机的 17 位数字字符串并通过 golang 将其解析为 uint64,这是我的代码:const msgMaxValue      = 100000000000000000s := fmt.Sprintf("%17v", rand.New(rand.NewSource(time.Now().UnixNano())).Int63n(msgMaxValue))log.Info("s:", s)msgId, err := strconv.Atoi(s)错误是:语法无效,我发现随机值中有一个空格但不知道为什么,我应该如何解决它,谢谢你
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

已通过“crypto/rand”修复它,下面是代码:


func CreateRandomNumber(len int) (string, error) {

    var numbers = []byte{1, 2, 3, 4, 5, 7, 8, 9}

    var container string

    length := bytes.NewReader(numbers).Len()


    for i := 0; i < len; i++ {

        random, err := rand.Int(rand.Reader, big.NewInt(int64(length)))

        if err != nil {

            log.Error("random error:", err)

            return "", err

        }

        container += fmt.Sprintf("%d", numbers[random.Int64()])

    }

    return container, nil

}

然后strconv.Atoi得到一个 int 类型号就可以了


查看完整回答
反对 回复 2022-06-27
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信