1
在ruby中,我尝试将运算符'[]
'中的字符串转换为Int,但失败。 下面是代码(我的输入为14 45
):无法在`[]`中将字符串转换为int
STDIN.gets.split(/\s+/).each do |str|
book = tags[str.to_i] # book is just a new variable. tags is an array
end
红宝石将因错误而停止: in '[]': no implicit conversion of String into Integer (TypeError)
所以我改变我的代码如下(这个效果很好。):
STDIN.gets.split(/\s+/).each do |str|
number = str.to_i # for converting
book = tags[number]
end
这个效果很好。但是我必须添加一行转换。有避免这条线的好方法吗? 我的红宝石版本是:$: ruby --version ==> ruby 2.0.0p0 (2013-02-24 revision39474) [i686-linux]
嗨,请让我知道你为什么还想关闭这个话题。谢谢。
什么是'tags','db'和'book'?如果你的代码不起作用,那么第二部分也不起作用。您可能正在'db [book]'处调用'array [nil]'。 – oldergod 2013-04-30 06:33:21
@oldergod,嗨,我只是修改它。而且我不认为我在调用array [nil]。使用相同的输入,我的代码的第二个版本运行良好。 – madper 2013-04-30 06:55:25
人们想关闭这个话题,因为缺乏信息使得观众很难理解你的问题和/或复制它。 – oldergod 2013-04-30 08:29:01