ruby-on-rails - Ruby - string[i] = string[i].ord 错误

标签 ruby-on-rails ruby ascii

创建凯撒密码时,怎么会

字符串[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/

相关文章:

ruby-on-rails - ruby on rails 如何处理 NaN

ruby - POST json 数据和自定义 header

linux - 如何遍历 Bash 中的所有 ASCII 字符?

c++ - 仿射密码解密,大写和小写输出均不同

ruby-on-rails - 在生产中运行脚本

ruby-on-rails - Capybara-webkit 引发 Capybara::Driver::Webkit::WebkitInvalidResponseError

ruby - Bluemix Ruby 应用程序运行状况检查配置

ruby-on-rails - :url, :action, 之间的 RoR 差异:form_for 中的方法

ruby-on-rails - 'people' 的未定义方法为 nil :NilClass

java - 使用 JAVA 将 EBCDIC 转换为 ASCII