Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Random 生成要附加到UID的随机字符串_Random_Uuid_Smalltalk - Fatal编程技术网

Random 生成要附加到UID的随机字符串

Random 生成要附加到UID的随机字符串,random,uuid,smalltalk,Random,Uuid,Smalltalk,我更喜欢生成唯一的随机字母数字字符串以附加到UID的末尾 到目前为止,我能在类库中找到的最接近的类是Random类,它生成的数字是次好的 到目前为止,我得到的是: getNextRandomNumber ^(((rand nextValue) / (Time now milliSeconds asInteger / Time now minutes asInteger + (Time now hour24 asInteger)) asInteger)). rand是一个类变量,

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

希望有帮助

尝试创建一个只包含小写字符的随机字符串,而不是字母数字字符串。ASCII 97到122是$a到$z,所以UUID类。。。它如何保持独特性?我需要担心这一点吗,还是这一切都已经自动处理了?您的个人实现处理唯一性吗?UUID类(Pharo 1.4)的类注释说:由John M McIntosh生成UUID的类johnmci@smalltalkconsulting.com如果插件不存在,我们将生成UUID版本4类型GUID;啊,谢谢!我认为这将很好地工作-由于版本4 UUID的长度,我可以只修改我的条目以使用UUID,还可以为条目的个人ID设置一个属性(使用“&&”等等)。ThanksBTW Squeak具有相同的UUID类。