我更喜欢生成唯一的随机字母数字字符串以附加到我的 UID 的末尾。
到目前为止,我能在类库中找到的最接近的是 Random 类,它生成的数字次之。
我目前拥有的是:
getNextRandomNumber
^(((rand nextValue) /
(Time now milliSeconds asInteger / Time now minutes asInteger
+ (Time now hour24 asInteger)) asInteger)).
rand
是类变量,初始化为:
initialize
rand := Random new.
这看起来写得很糟糕。但我不确定还能做什么。
最佳答案
您使用的是哪种方言?
在 Pharo 中,我通常在 String 类
中实现一个名为 #randomOfSize:
的方法。像这样的东西:
String class >> randomOfSize: anInteger
^ self streamContents: [ :s |
anInteger timesRepeat:
[ s nextPut: (Character codePoint: (97 to: 122) atRandom) ] ]
您可以调整字符代码以获得所需的字符间隔。
然后,要生成一个 8 个字符长的随机字符串,您可以执行以下操作:
String randomOfSize: 8
在Pharo中,还可以使用UUID
类,如下:
UUID new printString
希望对您有所帮助!
关于random - 生成随机字符串以附加到 UID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17417399/