Ruby 2.1.5
我刚开始学习Ruby。
您能帮助我了解如何使用文档吗? 这是我的例子:
some_array = [1, 2, 3, 4, 5]
some_array.each {|value| puts value * 3 }
坦率地说,在我在文档中找到解释之前,我已经绝对满了。
我想找到一切。例如,我无法理解大括号内的内容。
我的理解是我们在这里有一个foreach循环。但我几乎无法捕获任何其他东西。 我想在文档中阅读以下内容: 1.阵列。 2.每种方法。 3.为什么每次我需要{} 4.什么是价值,为什么我第一次需要||然后我只是使用价值。
好吧,当我回答这些问题时,我会知道如何使用这些文档。现在我甚至不知道文件的位置。你可以帮帮我吗?如果是的话,你能给我一些链接并告诉我:看看这里,这里,这里和这里。
提前谢谢。
答案 0 :(得分:0)
我无法理解大括号内的内容。
花括号内部是一段代码,方法each
将自动为数组中的每个元素执行。
数组类中的each
方法会自动调用这段代码。以下示例可帮助您了解其工作原理:
class Demo
def initialize(values)
@values = values
end
def traditional_loop
for i in [0..@values.length-1]
puts @values[i]
end
end
def loop_with_block
for i in [0..@values.length-1]
yield @values[i]
end
end
end
some_array = [1, 2, 3]
d = Demo.new(some_array)
d.traditional_loop
d.loop_with_block {|x| puts x}
traditional_loop
中的代码是您在大多数语言中执行循环的方式。您只需使用for
语句在数组内迭代。但是,此代码强制您将逻辑放在类中的每个元素上(请注意此方法中的puts语句)
loop_with_block
中的代码使用yield
代替在数组的每个元素上执行任意一段代码。当此代码调用yield @values[i]
时,您可以将其解释为“执行传递给我的特定部分(花括号内的代码)并将其传递给数组中当前元素的值”
这或多或少是默认each
方法对数组的作用。
您可能希望阅读Ruby块以更好地了解其工作原理,因为它在Ruby中非常普遍。
答案 1 :(得分:0)
我们可以在这里找到Ruby的Array类的文档:http://www.ruby-doc.org/core-2.1.5/Array.html包括它的each
实例方法:http://www.ruby-doc.org/core-2.1.5/Array.html#method-i-each
我们看到了:
每个{|项目|阻止}→ary
为self中的每个元素调用给定的块一次,将该元素作为参数传递。
这是一个很好的提示,我们想要了解更多关于"块" (包含在那些{}
中的代码块)因此我们可以查看相关问题,例如Best explanation of Ruby blocks?或查找相关文档,例如http://docs.ruby-doc.com/docs/ProgrammingRuby/html/tut_containers.html
答案 2 :(得分:0)
您正在询问Ruby语法和语义的非常基本的功能。 是在ISO/IEC 30170:2012 Ruby Language Specification中的Ruby语法和语义的文档,但在你为官方文档分配200美元之前,我可以请你重新考虑一下相反,数百个免费的基本Ruby教程?如果必须,您要查找的信息在11.3.3节中用于语义,6.4用于简短概述。
Ruby-Doc和RDoc.Info等网站上的文档记录了Ruby核心和标准库中方法的副作用和返回值以及行为,但它们并没有真正解释什么是返回值或参数或方法是什么或如何调用方法。假设知识存在。