【发布时间】:2015-06-06 18:35:30
【问题描述】:
在 Java 中,您必须指定要增加什么值以及增加多少。在 Ruby 中,您似乎可以将数组的每个值设置为某个随机变量,并且它会自动递增。这让我非常烦恼,因为即使我了解发生了什么,我也无法理解如何获得更好的控制。如果我想增加 2 或减少怎么办?这是 codecademy 的一个例子。
odds = [1,3,5,7,9]
# Add your code below!
odds.each do |item|
item *= 2
print item
end
我知道它正在遍历数组中的每个元素,但是 item 来自哪里?您是否只是将其从天空中拉出来并 ruby 将其初始化为您正在迭代的特定元素?另外,您如何指定要增加的方式?如果我只想要数组中的所有其他元素怎么办?
【问题讨论】:
-
Java 也有迭代器,所以这不应该让你大吃一惊,除非你对 Java 的理解不像你想象的那么扎实。
-
似乎 Ruby 为您做了很多事情,而在 Java 中您必须自己做所有事情。我不习惯。
-
这是一件好事。学会爱它。
-
each是一种收集方法。它接收作为参数的block。do和end之间的所有内容都是一个块。如each文档中所述,Ruby 会将给定的块代码应用于每个集合项。在此块中,您可以为当前项目命名(在示例代码中,仅称为item)。 Java 8 似乎有类似的方法使用Lambdas。 -
嗯,您将 for 循环与 foreach 循环混淆了
标签: java ruby arrays loops iteration