La invocación de métodos es una técnica que demuestra una sintaxis diferente en la que llamamos dinámicamente a los métodos de una clase con un objeto.
Las convenciones de nomenclatura de Scala son las mismas que las de Java, es decir:
- No debe haber ningún espacio entre el objeto/objetivo de la invocación y el punto (.) ni un espacio entre el punto y el nombre del método.
obj.display(“nombre”) // obj.display correcto (“nombre”) // obj
incorrecto pero legal .
display(“nombre”) // incorrecto pero legal - Tampoco debe haber ningún espacio entre el nombre del método y los paréntesis.
println(“estudiante”) // correcto
println (“estudiante”) // incorrecto pero legal - Los argumentos deben estar separados por un solo espacio y una coma.
obj.display(“nombre”, 22) // obj.display correcto (“nombre”, 22) // obj
incorrecto pero legal .
display(“nombre”, 22) // incorrecto pero legal
Veamos métodos con diferentes argumentos y estilos.
Arity-0: cuando hay 0 argumentos para pasar al método. Por lo tanto, no es obligatorio agregar paréntesis en los métodos. Mejorará la legibilidad del código y la omisión de paréntesis reducirá el número de caracteres hasta cierto punto.
obj.display() //correct obj.display //correct
Arity-1: Cuando solo hay 1 argumento para pasar al método de arity-1. Esta regla debe usarse para la programación puramente funcional o los métodos que toman funciones como parámetros, luego se pueden evitar los paréntesis alrededor del parámetro pasado. Este tipo de sintaxis también se conoce como notación infija .
Ejemplo :
// 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 } }
Producción:
student student student
Función de orden superior: una función se denomina función de orden superior si contiene otras funciones como parámetro o devuelve una función como salida, es decir, las funciones que operan con otras funciones se conocen como funciones de orden superior. Vale la pena saber que la función de orden superior también es aplicable para funciones y métodos que toman funciones como parámetro o devuelven una función como resultado. Esto es practicable ya que el compilador de Scala permite forzar métodos en funciones.
Ejemplo :
// 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) } }
Producción:
Multiplied List is: Set(captain sunil, captain akhil, captain rakhi)
Puntos importantes
- Esta sintaxis debe seguirse cuando no haya efectos secundarios.
- Estas convenciones se utilizan para mejorar la legibilidad y hacer que el código sea mucho más fácil de entender.
- Puede ahorrar algo de espacio al descuidar algunos caracteres adicionales.