我正在尝试从为 RubyQuiz 创建的一些代码中学习,但它似乎是使用旧版本的 Ruby 构建的,当我尝试使用 1.9.2 时,它现在会引发错误。运行测试时出现此错误
in `>=': comparison of Fixnum with String failed (ArgumentError)
运行'if c >= ?A and c <= ?Z'这一行。由于相当缺乏经验,我不确定这是否可以在函数本身内进行调整,或者我是否需要发布整个代码,这可能不值得。请指教
def process(s, &combiner)
s = sanitize(s)
out = ""
s.each_byte { |c|
if c >= ?A and c <= ?Z #error
key = @keystream.get
res = combiner.call(c, key[0])
out << res.chr
else
out << c.chr
end
}
return out
end