📜  Ruby – 方法调用

📅  最后修改于: 2022-05-13 01:55:35.520000             🧑  作者: Mango

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