Я только начал изучать рубиновое чтение с разных ресурсов. Один из них - rubylearning.com, и я просто читал раздел блоки и выполнял упражнения. По некоторым причинам область действия этого примера работает по-другому в моем случае:
x = 10
5.times do |x|
puts "x inside the block: #{x}"
end
puts "x outside the block: #{x}"
Вывод должен быть (по данным сайта):
x inside the block: 0
x inside the block: 1
x inside the block: 2
x inside the block: 3
x inside the block: 4
x outside the block: 10
Но мой вывод:
x inside the block: 0
x inside the block: 1
x inside the block: 2
x inside the block: 3
x inside the block: 4
x outside the block: 4
Есть идеи, почему? Предполагается, что этот раздел посвящен области действия в рубиновых блоках, но я сейчас совершенно сбит с толку ...
EDIT:
Хорошо, я только что кое-что понял: я выполнял свой код из textmate. Если я запускаю его из командной строки, я получаю ожидаемый результат плюс 1.9.2 RUBY_VERSION. Но я получаю 1.8.7 с Textmate. У textmate установлена собственная версия ruby или как? - 0al0 0 сек. Назад edit