我正在编写一个ruby uid生成器,我需要以递增顺序生成唯一ID。唯一ID是3到9个字符的字符串。
我想要实现的目标是:
获取最后生成的标识符,将其转换为位,并将1位转换为它(基本上执行+ 1)并将结果转换回ascii。这样我就可以防止生成两次唯一的id。
我如何在ruby中执行此操作。我知道#pack和#unpack方法,但我无法找到方法。
答案 0 :(得分:2)
您可以使用以下内容:
a = "Foobar".unpack("B*")[0].to_i(2)+1
=> 77444424032627
["0" + a.to_s(2)].pack("B*")
=> “Foobas”