MrD*_*Duk 3 random uuid smalltalk
我更喜欢生成唯一的随机字母数字字符串,以附加到我的UID的末尾.
到目前为止,我在类库中找到的最接近的是Random类,它生成的数字是下一个最好的东西.
到目前为止我所拥有的是:
getNextRandomNumber
^(((rand nextValue) /
(Time now milliSeconds asInteger / Time now minutes asInteger
+ (Time now hour24 asInteger)) asInteger)).
Run Code Online (Sandbox Code Playgroud)
rand
是一个类变量,初始化为:
initialize
rand := Random new.
Run Code Online (Sandbox Code Playgroud)
这看起来写得很糟糕.但我不确定还能做些什么.
你使用哪种方言?
在Pharo中,我通常会在String class
类似的东西中实现一种方法#randomOfSize:
.就像是:
String class >> randomOfSize: anInteger
^ self streamContents: [ :s |
anInteger timesRepeat:
[ s nextPut: (Character codePoint: (97 to: 122) atRandom) ] ]
Run Code Online (Sandbox Code Playgroud)
您可以调整字符代码以获得所需字符的间隔.
然后,要生成8个字符长的随机字符串,您可以执行以下操作:
String randomOfSize: 8
Run Code Online (Sandbox Code Playgroud)
在Pharo中,您还可以使用UUID
该类,如下所示:
UUID new printString
Run Code Online (Sandbox Code Playgroud)
希望它有所帮助!