斯卡拉 |方法调用
方法调用是一种演示不同语法的技术,在该语法中,我们使用对象动态调用类的方法。
Scala 的命名约定与Java相同,即:-
- 调用对象/目标和点(.)之间不应该有任何空格,点和方法名称之间也不应该有空格。
obj.display(“name”) // correct
obj.display (“name”) // incorrect but legal
obj. display(“name”) // incorrect but legal - 方法名称和括号之间也不应该有任何空格。
println(“student”) // correct
println (“student”) // incorrect but legal - 参数应该用一个空格和一个逗号分隔。
obj.display(“name”, 22) // correct
obj.display (“name”, 22) // incorrect but legal
obj. display(“name”, 22) // incorrect but legal
让我们看看具有不同参数和样式的方法。 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)
要点
- 当没有副作用时,应遵循这些语法。
- 这些约定用于提高可读性并使代码更易于理解。
- 它可以通过忽略一些额外的字符来节省一些空间。