1. Ruby根据接收者的不同,可以将方法分成3种:
1.1 实例方法
1.2 类方法
1.3 函数性的方法
2. 实例方法
实例方法是最普通的方法。当对象(实例)存在时,把该对象作为接收者。
例如:
3. 类方法
当接收者不是对象而是类时,这个方法称为类方法。
例如,要建立一个实例的时候,就会使用类方法。
例如,有些没有直接操作实例,但仍与该类有关的操作,也会使用类方法。
例如,类方法也有些是运算符的形式。
4. 函数性方法
没有接受者的方法,称为函数性方法。
事实上,说是“没有接收者",其实并不是真的没有接收者对象,只是函数性的方法省略了它而已
例如:
函数性的方法都设计成不会因为接收者状态的不同而影响执行结果。
5. 定义方法
def 方法名(参数1, 参数2, ...)
想要执行的动作
end
1.1 实例方法
1.2 类方法
1.3 函数性的方法
2. 实例方法
实例方法是最普通的方法。当对象(实例)存在时,把该对象作为接收者。
例如:
"10, 20, 30, 40".split(",")
[1,2,3,4].index(2)
1000.integer?
# 上面的对象依序分别是字符串,数组,数值的接收者
# 然而,也有一些表面看来像是运算符的方法
obj =~ arg1
obj[arg1] = arg2
obj + arg1
# 上面的这些语句虽然与一般方法的调用语法不同,但都是接收者为"obj",方法实参为"arg1", "arg2"的方法调用。
3. 类方法
当接收者不是对象而是类时,这个方法称为类方法。
例如,要建立一个实例的时候,就会使用类方法。
a = Array.new # 建立新数组
f = File.open("some_file") # 建立新的文件对象
t = Time.new # 建立新的Time对象
例如,有些没有直接操作实例,但仍与该类有关的操作,也会使用类方法。
File.rename(oldname, newname) # 更改文件名
CGI.escapeHTML(html_string) # 转换HTML的特殊字符
(如将"<", "&"转换成实例引用的"<"与"&")
例如,类方法也有些是运算符的形式。
Array["a", "b", "c"] # 产生["a", "b", "c"]这个数组
4. 函数性方法
没有接受者的方法,称为函数性方法。
事实上,说是“没有接收者",其实并不是真的没有接收者对象,只是函数性的方法省略了它而已
例如:
sin(3.14) # sin函数
sleep(10) # 程序暂停执行指定的秒数
print "hello!" # 在控制台显示字符串
函数性的方法都设计成不会因为接收者状态的不同而影响执行结果。
5. 定义方法
def 方法名(参数1, 参数2, ...)
想要执行的动作
end