Ruby - 我错过了方法吗?

时间:2017-01-06 16:45:19

标签: ruby rubymine

我最近开始学习Ruby编程语言,在编写一些基本代码时遇到了一些奇怪的行为。我在下面编写的代码在允许我运行Ruby代码的网站上编译时运行正常,例如" repl.it",但是当我尝试使用ruby-2.3在RubyMine中编译我的代码时。 3-p222 SDK,或通过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 个答案:

答案 0 :(得分:1)

你没有输出,因为你没有输出任何东西。 REPL具有很好的副作用,它们通常会向您显示上次执行的命令的值。这就是你在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