ruby学习总结03

1.方法的调用

  对象.方法名(参数1,参数2,...) 可以省略参数列表的()

  对象.方法名(参数1,...) do |变量1,变量2,...| 可以省略参数的()

    块内容

   end

   对象.方法名(参数1,...){|变量1,变量2...| 只要在没有参数的时候才可以省略()

    块内容

   }

  可以使用【*数组】作为参数,把数组中的元素依次赋给方法中的参数

  散列作为参数时可以省略{}

2.方法的分类:实例方法、类方法、函数式方法

  实例方法:以对象为接受者的方法,使用【对象.方法名(参数)】进行调用,在帮助文档中通过【方法:类名】进行标记

  类方法:接受者不是方法而是类本身的方法,使用【类名.方法名(参数)】或者【类名::方法名(参数)】进行调用,在帮助文档中通过【类名.方法名】或者【类名::方法名】进行标记

  函数式方法:不需要接受者的方法,使用【方法名(参数)】调用

  注意:定义带块的方法是,可以使用yield关键字进行占位,如果yield部分有参数,程序会将其当作块变量进行传入。

  def myfoo()

    while true

      yield("ss")

    end

  end

  num=0

  myfoo do |s|

    print s,num

    puts ""

    if num>10

      break

    end

    num+=2

  end

    关键字参数:在方法定义式指定参数的名称和默认值,def 方法名(参数1:值1,参数2:值2),调用时,可以把散列作为参数传入

    为避免调用方法时指定了未定义的参数而报错,可以在参数末尾通过【**参数名】来接受未定义的参数