2017-01-06 8 views
0

Недавно я начал изучать язык программирования Ruby и столкнулся с каким-то странным поведением при написании базового кода. Код, который я написал ниже, отлично работает при компиляции на сайтах, которые позволяют мне запускать Ruby-код, например «repl.it», но когда я пытаюсь скомпилировать свой код в RubyMine, используя SDK ruby-2.3.3-p222, или через CMD, мой код не приводит к выходу. Код должен выводить число «10», но как-то ничего не выводит, кроме завершения «код выхода 0». Что я делаю не так или нет?Руби - я не хватает методов?

numbers = [1, 2, 3, 4] 
numbers.map {|num| num*num} 
numbers.select {|num| num%2==0} 
numbers.inject do |sum, num| 
    sum + num 
end 

ответ

1

У вас нет выхода, потому что вы ничего не выводите. REPLs имеют хороший побочный эффект, когда они обычно показывают вам значение последней выполненной команды. Это то, что вы видели на repl.it. Для того, чтобы получить ожидаемый результат вам нужно распечатать результат:

numbers = [1, 2, 3, 4] 
numbers.map {|num| num*num} 
numbers.select {|num| num%2==0} 
result = numbers.inject do |sum, num| 
    sum + num 
end 
p result 
+0

ПРИМЕЧАНИЕ 'p' перед' numbers.select', @MihkelPajunen –

+0

Спасибо за ваш ответ. Я никогда не думал, что я смотрю на последнее значение, а не на выход. – MihkelPajunen