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