Ruby – 方法调用
方法调用是指在程序中如何调用方法。在 Ruby 中调用方法的过程非常简单,因为括号的使用是可选的。当调用嵌入到由其他函数调用或运算符组成的表达式中时,括号的使用起着重要作用。
Ruby 解释器使用称为方法查找或方法解析的过程。在此方法中,当 Ruby 解释器具有方法的名称和要调用它的对象时,它会搜索方法定义。
一个方法调用表达式包含 4 个组件:
- 其值为调用方法的对象的表达式。现在,这个表达式后面跟着 any 。或::用于将表达式与方法名称分开。此分隔符和表达式是可选的。如果没有分隔符和表达式,则在'self'上调用方法。
- 被调用的方法的名称。
- 参数值被传递给方法。如果方法包含多个参数,则可以将逗号分隔的参数列表传递给括号内的方法。这些参数是可选的。
- 一个可选的代码块,括在花括号或“do/end”对中。这段代码可以在'yield'关键字的帮助下被调用。
示例 1:在此示例中,我们调用一个不带参数的方法。
# Ruby program to illustrate
# how to invoke a method
example_str ='GeeksforGeeks'
# "length" invoked on object
# example_str having no args
puts example_str.length
输出:
13
示例 2:在此示例中,我们调用一个带有一个参数的方法。
# Ruby program to illustrate
# how to invoke a method
# "sqrt" invoked on object
# Math with one argument
number = Math.sqrt(36)
puts "Square Root of 36:"
puts number
输出:
Square Root of 36:
6.0
示例 3:在此示例中,我们将定义一个带有两个参数的方法。然后我们将调用此方法。
# Ruby program to illustrate
# how to invoke a method
def add(a, b)
# ’add’ method definition
a + b
end
# Calling method ‘add’
c = add(20, 30)
d = add(45, 90)
puts c
puts d
输出:
50
135
示例 4:在此示例中,我们将调用类方法。
# Ruby program to illustrate
# how to invoke a method
# ’Animal’ class definition
class Animal
# ’dog’ function definition
# having no arguments
def dog
puts "Dog is barking"
end
# ’enternames’ function definition
# having two arguments
def enternames(one, two)
puts one
puts two
end
end
# Create a new instance of Animal
animal = Animal.new
# Instance method invocation
animal.dog
# Instance method invocation
# having two arguments
animal.enternames("Cat", "Elephant")
# Class method call using send method
animal.send :dog
# Class method call using send method
animal.send :enternames, "Cat", "Elephant"
输出:
Dog is barking
Cat
Elephant
Dog is barking
Cat
Elephant