Ruby方法相关
=begin
Ruby 方法跟其他编程语言中的函数非常相似 Ruby方法用于捆绑到一个单元中的一个或多个重复的语句 方法名称应以小写字母开始 如果一个方法的名称以大写字母开始 Ruby可能会认为这是一个仓鼠 一次可以正确的解析调用 方法应该定义Ruby的之前调用他们 否则会引发一个异常未定义的方法调
=end
#如果没有给参数设置默认值 则不能够调用不带参数的方法 如果设置了默认值 可以直接调用函数名 可以不设置参数或者参数个数(不超过定义的个数)任意设置
=begin
def method_name (var1 = "234234" ,var2 = "ewr")
puts "value of parapobj is #{var1}"
end
method_name 23
method_name 23,45
method_name
=end
#返回值 在Ruby中的每一个方法返回默认值 这个返回值将是最后一个语句的值
#return 语句 return语句用于从一个Ruby方法返回一个或多个值 如果有两个以上的表达式给出 数组包含这些值将返回值 如果没有表达式 将会是nil返回值
=begin
def test
i = 100
j = 10
end
puts "value is #{test}"
=end
=begin
def test
i = 1
j = 10
k = 100
return i , j ,k
end
puts "Value of test is #{test}"
=end
#可变数目的参数 假设声明一个方法需要两个参数 每当你调用这个方法 需要随着它传递两个参数 但是Ruby允许声明与可变数目的参数的方法 类似传入数组指针
=begin
def sample (*test)
puts "The number of parameters is #{test.length}"
for i in 0...test.length
puts "The paramters are #{test[i]}"
end
end
sample "23",3242,"123","23"
=end
#类方法 类定义之外定义一个方法时 该方法被默认标记为私有 另一方面 在类定义中定义的方为默认标示公有 可以改变默认可视性和私有标记的方法 由公有或私有的模块 每当想要方为一个类的方法 首先需要实例化的类 然后使用对象可以访问任何类的成员 Ruby提供了一个方法来访问的方法 没有实例化一个雷
=begin
class Accounts
def reading_charge #对象方法定义
puts "reading charge"
end
def Accounts.return_date #类方法定义
Accounts.new.reading_charge
end
end
Accounts.return_date
Accounts.new.reading_charge
=end
#Ruby alias 语句:方法或全局变量的别名。别名不能被定义在方法体 方法aliase保持当前定义的方法 即使方法是覆盖 不能为全局变量取别名 覆盖内置的全局变量 可能导致严重的问题
#语法:alias method-name method-name
# alias global-variable-name global-variable-name
alias foo bar #定义了foo的别名bar
alias $MATCH $& #定义了$MATCH函数的别名$&
#Ruby undef语句 取消方法的定义 undef不能出现在方法体中 通过使用undef和alias 可以从超类独立修改类的接口 但注意到这可能打破程序由内部自行的方法调用
undef bar #取消bar方法

浙公网安备 33010602011771号