📜  斯卡拉 |方法调用

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

斯卡拉 |方法调用


方法调用是一种演示不同语法的技术,在该语法中,我们使用对象动态调用类的方法。
Scala 的命名约定与Java相同,即:-

  • 调用对象/目标和点(.)之间不应该有任何空格,点和方法名称之间也不应该有空格。
  • 方法名称和括号之间也不应该有任何空格。
  • 参数应该用一个空格和一个逗号分隔。

让我们看看具有不同参数和样式的方法。 Arity-0 :当有 0 个参数要传递给方法时。因此,在方法上添加括号不是强制性的。它将增强代码的可读性,省略括号会在一定程度上减少字符数。

obj.display() //correct
obj.display   //correct


Arity-1 :当只有 1 个参数要传递给 arity-1 的方法时。这条规则应该用于纯函数式编程或以函数为参数的方法,那么在传递的参数周围可以避免括号。这种类型的语法也称为中缀表示法
例子 :

// Scala program for arity 1 
// Creating object
class x
{
    // Defining method
    def display(str: String)= 
    {
        println(str)
    }
}
  
// Creating object
object GfG 
{ 
    // Main method 
    def main(args: Array[String]) 
    { 
        val obj = new x
        obj.display("student") // correct
        obj display ("student") // correct
        obj display "student" // correct
      
    } 
} 

输出:

student
student
student


高阶函数:如果一个函数包含其他函数作为参数或返回一个函数作为输出,则称为高阶函数,即与其他函数一起操作的函数称为高阶函数。值得知道的是,高阶函数也适用于以函数为参数或返回函数作为结果的函数和方法。这是可行的,因为 Scala 的编译器允许将方法强制转换为函数。
例子 :

// Scala program of higher order 
// function 
  
// Creating object 
object GfG 
{ 
    // Main method 
    def main(args: Array[String]) 
    { 
      
        // Creating a Set of strings 
        val names = Set("sunil","akhil","rakhi") 
      
        // Defining a method 
        def captainDesignation = (y: String) => "captain " + y
      
        // Creating a higher order function 
        // that is assigned to the String elements 
        val result = names.map(y => captainDesignation(y)) 
      
        // Displays output 
        println("Multiplied List is: " + result) 
    } 
} 

输出:

Multiplied List is: Set(captain sunil, captain akhil, captain rakhi)

要点

  • 当没有副作用时,应遵循这些语法。
  • 这些约定用于提高可读性并使代码更易于理解。
  • 它可以通过忽略一些额外的字符来节省一些空间。