random - 生成随机字符串以附加到 UID

标签 random uuid smalltalk

我更喜欢生成唯一的随机字母数字字符串以附加到我的 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/

相关文章:

c# - 循环中从 CryptoStream 获取字符串

mysql - 随机化查询中每行两列的顺序

python - Python 中的蒙特卡罗模拟 : How to get exactly identical transition probabilities from modeled data?

uuid - 多个订阅者的相同 ZMQ IDENTITY

sql - 是否有实现不可知的方式让 SQL DB 提供 UUID?

smalltalk - Smalltalk 实例变量名称和方法中允许使用哪些特殊字符?

python - 使用 Numpy 生成 N 维矩阵

standards - 后缀是否符合 UUID 派生的 DICOM UID 标准?

comparison - 如何在 Smalltalk 中比较集合

crash - Pharo Smalltalk图像在Windows 10上无法通过FileStream响应