ecodeclub / ekit

支持泛型的工具库
https://doc.meoying.com/
Apache License 2.0
383 stars 164 forks source link

重构randx.RandCode以及传入的RandType数值 #240

Closed dxyinme closed 10 months ago

dxyinme commented 10 months ago

仅限中文

需要重构函数 RandCode

当前实现缺陷

无法实现随机生成 数字+大写字母 / 数字 + 小写字母 / 大写字母 + 小写字母 的这种组合

重构方案

TYPE_DIGIT   TYPE = 1 //数字
TYPE_LETTER  TYPE = 1 << 1 //小写字母
TYPE_CAPITAL TYPE = 1 << 2 //大写字母
TYPE_MIXED   TYPE = (TYPE_DIGIT | TYPE_LETTER | TYPE_CAPITAL)

然后可以通过取按位与的值来确认最终的source字符串

source := ""
if (typ & TYPE_DIGIT) == TYPE_DIGIT {
    source += DigitCharset
}
...

其它

任何你觉得有利于解决问题的补充说明

你使用的是 ekit 哪个版本?

你设置的的 Go 环境?

上传 go env 的结果

flycash commented 10 months ago

可以支持这个

dxyinme commented 10 months ago

我最近抽空写一下这个

dxyinme commented 10 months ago

PR: https://github.com/ecodeclub/ekit/pull/241