创建凯撒密码时,怎么会
字符串[i] = 字符串[i].ord
给我一条错误消息(“没有将 Fixnum 隐式转换为字符串”),但是一个变量解决了这个问题,例如
cipher = string[i].ord
?
最佳答案
这两行的意思完全不同。
考虑你的第一个:
string[i] = string[i].ord
这意味着“将此值分配给我的字符串中的 i
位置”,String 试图尽职尽责地这样做,除非,呃哦,你给出了一个数字而不是一个字符串,所以它会出错。你可以解决这个问题:
string[i] = string[i].ord.to_s
第二个示例创建了一个变量,这些变量不受相同限制。
请记住,一般而言,x[i] = y
是一个方法调用,其中 x = y
是一个变量赋值。
我不确定您的初始行应该做什么。用一堆数字代替单个字母似乎没有意义。如果你想打破你的角色:
string.chars.to_a
您还可以获得跳过 ord
步骤的原始字节:
string.bytes.to_a
关于ruby-on-rails - Ruby - string[i] = string[i].ord 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37471129/