完整初学者的Ruby文档

时间:2014-12-17 16:22:46

标签: ruby

Ruby 2.1.5

我刚开始学习Ruby。

您能帮助我了解如何使用文档吗? 这是我的例子:

some_array = [1, 2, 3, 4, 5]
some_array.each {|value| puts value * 3 }
坦率地说,在我在文档中找到解释之前,我已经绝对满了。 我想找到一切。例如,我无法理解大括号内的内容。

我的理解是我们在这里有一个foreach循环。但我几乎无法捕获任何其他东西。 我想在文档中阅读以下内容: 1.阵列。 2.每种方法。 3.为什么每次我需要{} 4.什么是价值,为什么我第一次需要||然后我只是使用价值。

好吧,当我回答这些问题时,我会知道如何使用这些文档。现在我甚至不知道文件的位置。你可以帮帮我吗?如果是的话,你能给我一些链接并告诉我:看看这里,这里,这里和这里。

提前谢谢。

3 个答案:

答案 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-DocRDoc.Info等网站上的文档记录了Ruby核心和标准库中方法的副作用和返回值以及行为,但它们并没有真正解释什么是返回值或参数或方法是什么或如何调用方法。假设知识存在。