Я не уверен, что понимаю вопрос. Если я это понимаю, я думаю, что вы пытаетесь подсунуть один переводчику:
telemachus ~ $ irb
irb(main):001:0> a = 1
=> 1
irb(main):002:0> b = '1'
=> "1"
irb(main):003:0> a == b
=> false
Вы можете сравнивать 1
и '1'
сколько хотите, но они не равны в зависимости от того, как Ruby обрабатывает строки и числа. Короче говоря, Ruby не Perl. ( Редактировать : Я должен уточнить. Очевидно, что число 1 - это не то же самое, что строка «1». Так что на самом деле вопрос не в том, как Ruby обрабатывает их. Если вы сравниваете их напрямую, они просто не то же самое. Я просто имел в виду, что Ruby не выполняет автоматические преобразования так, как это делает Perl. В зависимости от того, с какого языка вы пришли, и от вашего отношения к печати, это сделает вас счастливыми, удивленными, раздраженными или какой-то их комбинацией. ) * +1010 *