Escala | límite superior

Scala tiene algunas restricciones sobre los parámetros de tipo o la variable de tipo, es decir, (límite de tipo) y el límite superior es uno de ellos. Al implementar límites de tipo, podemos explicar las restricciones de una variable de tipo, este límite de tipo restringe los valores definidos de las variables de tipo y revela más detalles sobre el miembro de estos tipos. El límite superior se define en los parámetros de tipo.
Sintaxis

[T <: S]

Donde, ‘T’ es un parámetro de tipo y ‘S’ es un tipo “[T <: S]” significa que este parámetro de tipo T debe ser igual a S o subtipo de S.
 
Comprendamos el límite superior con un ejemplo.
Ejemplo

// Scala Program To Demonstrate Scala Upper Bound
class GeeksforGeeks
class Author extends GeeksforGeeks
class Geeks extends Author
  
class ComputerSciencePortal
{
    // Declaration of upper bound
    def display [T <: Author](d : T)
    {
        println(d)
    }
}
  
// Object created
object ScalaUpperBounds
{
    // Driver code
    def main(args: Array[String])
    {
  
        val geeksforgeeks = new GeeksforGeeks
        val author = new Author
        val geeks = new Geeks
  
        val computerscienceportal = new ComputerSciencePortal
  
    // computerscienceportal.display(geeksforgeeks)
    computerscienceportal.display(geeks)
    computerscienceportal.display(author)
    }
}
Producción:

Geeks@506e1b77
Author@4fca772d

Aquí, el límite superior se define en la clase ComputerSciencePortal, y GeeksforGeeks es la clase Super de Author, por lo que no se acepta.

Ejemplo

// Scala Program To Demonstrate Scala Upper Bound
class  Principal
class Teacher extends Principal
class Student extends Teacher
  
class School
{
    // Declaration of upper bound
    def display [T <: Teacher](t: T)
    {
        println(t)
    }
}
  
// Object created
object ScalaUpperBounds
{
    // Driver code
    def main(args: Array[String])
    {
        // Defined new variable
        val principal = new Principal
        val teacher = new Teacher
        val student = new Student
  
        val school = new School
          
        // school.display(principal)
        school.display(teacher)
        school.display(student)
  }
}
Producción:

Teacher@506e1b77
Student@4fca772d

Aquí, hemos definido el límite superior en Class School , es decir, [T <: Teacher], lo que implica que el método de visualización acepta el objeto de clase Teacher o una subclase del mismo (es decir, Student), lo que significa que no se aceptará la superclase de Teacher. Por lo tanto, si no se comenta la superclase de profesor, es decir, el director , se mostrará un error de discrepancia de tipo .

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *