Ruby学习-关于步骤(1)

Ruby学习--关于方法(1)

【方法小结】

关于方法的那些细节

1. 定义

ruby方法的定义格式是通过关键字def end的来定义的  具体格式如下

ded 方法名[参数1,参数2,。。。]

表达式

[return 表达式] 

end

2. 方法命名

  提到方法肯定少不了方法命名,ruby方法的命名规则同变量命名一样采用默认机制的规则命名  具体规则如下

2.1 方法名必须以一个小写字母开头(如果以大写字母开头, 当ruby在调用这个方法的时候,它首先会以为这是一个常量,而不是当一个方法使用。),后跟数字/字母/下划线等

2.2 表示查询的方法通常以?结尾  如 instance_of 

2.3 危险的或者会修改接收者对象的方法,通常用!结尾。 例如 String 提供的chop和chop!  第一个方法返回修改后的字符串,第二个则就地修改对象。

2.4 可以被赋值的方法以一个=结尾。

2.5 只有以上3个特殊字符可以作为方法的后缀。

3. 方法参数

3.1 ruby方法有一个特点(之前只用的语言中没有可以这样使用的)就是在声明方法时可以指定方法参数的默认值  例如:

def name(name=“seek”)

”#{name}“

end

name    -->   seek

name("love")  --> love

3.2 Ruby方法参数两边的括号可有可无,当有参数是使用括号,没有参数时可以不加括号。 例如:

def hello(name)

name

end

def hello

”hello“

end

3.3 可变长度的参数列表,如果希望传入可变个数的参数,或者想用一个形参接受多个参数,只需在普通的参数名前放一个"*"号即可,这些多个参数会被装入一个数组中。

例如:

def hello(name,*hobby)

"#{name} like #{hobby.join(',')}"

end

hello("seek") --> seek like

hello("seek","ruby") --> seek like ruby

hello("seek","java","ruby") --> seek like java,ruby

3.4 如果方法的最后一个参数前有个&做前缀,Ruby将认为他是一个Proc对象(),它将会被从其参数列表中删除,并将Proc对象转换成一个block,然后关联到该方法。

4. 返回值

每个被调用的方法都有一个返回值,ruby方法的返回值是执行的最后一个表达式的值,或者使用return表达式显示返回的值。如果给return多个参数,方法会将它们以数组的形式返回。