好吧,我是ruby的新手,我有这个ID生成器生成一个基于Time.now.to_f / time.time()的ID,然后是一个8长度的id,例如这是工作的python版本
def anonId(a,b):
a = a.split('.')[0]
if len(a) > 4: i = a[6:]
else: i = a
return "".join(str(int(x) + int(y))[-1] for x, y in zip(i, b[4:]))
做
anonId("1379697991.99",'26002859')
会生成'9740'的ID 在红宝石中,我尝试了类似的东西,但我还不太了解红宝石,但还不知道如何做到这一点,但这是我到目前为止所拥有的
def anonId(number,id)
if String(number).length > 4 then number = String(number).split(".")[0][-4..-1] else number end
[number,id[4..-1]].zip.each do |x,y|
#this is where I get stuck at, I'm not sure if the above is correct
end
end
基本上,我需要知道如何将python代码转换为ruby
答案 0 :(得分:3)
zip
是一个关于数组的方法,请使用an_array.zip(other_array)
。map
这会导致number.chars.zip(id[4..-1].chars).map do |x,y|
注意x和y是字符串。将它们转换为x.to_i
等的整数。