Ruby-比较从字符串派生的整数
我正在使用ruby 1.9.3,并使用Ruby-比较从字符串派生的整数,ruby,Ruby,我正在使用ruby 1.9.3,并使用 or_rating = line.scan((/\d+/)).map(&:to_i) 然后我读了另一个数字 offrating = line.scan((/\d+/)).map(&:to_i) 然后试着做一个比较 if offrating - 1 <= or_rating then... 我找到的大多数答案都是关于将映射到\u I,我已经尝试了(上面),但我无法让它工作。您的offrating是一个数组,而或\u rating是
or_rating = line.scan((/\d+/)).map(&:to_i)
然后我读了另一个数字
offrating = line.scan((/\d+/)).map(&:to_i)
然后试着做一个比较
if offrating - 1 <= or_rating then...
我找到的大多数答案都是关于将
映射到\u I
,我已经尝试了(上面),但我无法让它工作。您的offrating
是一个数组,而或\u rating
是另一个数组
而你正试图做到这一点
Array - FixNum <= Array
scan
返回一个数组。您遇到的问题是offrating-1
部分
它试图从数组中减去数字1。如果你加上索引器,就像这样
if offrating[0] - 1 <= or_rating[0]
if offrating[0]-1tcshao和JSWorld所说的-您从表达式中得到了一个数组-字符串中的一个数字数组。看起来你想要:
line.scan(/\d+/).map(&:to_i).each_slice(2).select{ |or_rating, offrating|
offrating - 1 <= or_rating
}.each{ |or_rating, offrating|
puts "Your Code Here"
}
line.scan(/\d+/).map(&:to_i)。每个_片(2)。选择{或_评级,关闭|
offrating-1为什么有双括号?
if offrating[0] - 1 <= or_rating[0]
line.scan(/\d+/).map(&:to_i).each_slice(2).select{ |or_rating, offrating|
offrating - 1 <= or_rating
}.each{ |or_rating, offrating|
puts "Your Code Here"
}