Scala 方法调用

Scala 方法调用

方法调用是一种展示不同语法的技术,在这种技术中,我们用一个对象动态地调用一个类的方法。

Scala的命名规则与Java相同,即:-

  • 调用对象/目标和点(.)之间不能有任何空格,点和方法名之间也不能有空格。

obj.display(“name”) // 正确

obj.display(“name”) // 不正确但合法

obj. display(“name”) // 不正确但合法

  • 方法名称和括号之间也不应该有任何空格。

println(“student”) // 正确

println (“student”) // 不正确但合法

  • 参数应该用一个空格和一个逗号隔开。

obj.display(“name”, 22) // 正确

obj.display(“name”, 22) // 不正确但合法

obj. display(“name”, 22) // 不正确但合法

让我们看看具有不同参数和风格的方法。

Arity-0 : 当有0个参数要传递给方法时。因此,在方法上添加小括号并不是强制性的。它将提高代码的可读性,省略小括号将在一定程度上减少字符的数量。

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

Arity-1 : 当只有一个参数被传递给arity-1的方法时。这条规则应该用于纯函数式编程或以函数为参数的方法,那么就可以避免在传递参数周围使用小括号。这种类型的语法也被称为 infix符号

示例

// 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)

重要要点

  • 在没有副作用的情况下,应该遵循这些语法。
  • 这些约定是为了提高代码的可读性,使其更容易理解。
  • 它可以通过忽略一些额外的字符而节省一些空间。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程