Jerarquía de tipos de Scala

No hay tipos primitivos en Scala (a diferencia de Java). Todos los tipos de datos en Scala son objetos que tienen métodos para operar en sus datos. Todos los tipos de Scala existen como parte de una jerarquía de tipos .

Cada clase que definamos en Scala también pertenecerá a esta jerarquía automáticamente.

Any es la superclase de todas las clases, también llamada clase superior. Define ciertos métodos universales como equals, hashCode y toString. Any tiene dos subclases directas:

  • CualquierVal
  • CualquierRef

.
Ejemplo:

// Scala program of Scala Type hierarchy 
  
// Creating object
object Geeks 
{
  
    // Main method
    def main(args: Array[String]) 
    {
        val list: List[Any] = List(
                false,
                66677,
                732, 
                'a', 
                "abs"
                    )
  
        list.foreach(element => println(element))
    }
}
Producción:

false
66677
732
a
abs

 
AnyVal representa clases de valor. Todas las clases de valores están predefinidas; corresponden a los tipos primitivos de lenguajes similares a Java. Hay nueve tipos de valores predefinidos y no son nulos: Doble, Flotante, Largo, Int, Corto, Byte, Char, Unidad y Booleano. Scala tiene tipos numéricos (por ejemplo, Int y Double) y no numéricos (por ejemplo, String) que se pueden usar para definir valores y variables. Las variables booleanas solo pueden ser verdaderas o falsas. Los caracteres char se escriben con comillas simples.

Ejemplo:

// Scala program of Scala Type hierarchy
// Using AnyVal. 
  
// Creating Object
object Geeks 
{
  
    // Main method
    def main(args: Array[String]) 
    {
        val list: List[AnyVal] = List(
            333, true, false
            )
  
        list.foreach(element => println(element))
    }
}
Producción:

333
true
false

 
AnyRef representa clases de referencia. Todos los tipos sin valor se definen como tipos de referencia. Las clases definidas por el usuario definen los tipos de referencia de forma predeterminada; es decir, siempre (indirectamente) subclasifican scala.AnyRef. scala.AnyRef en programación java corresponde a java.lang.Object.

Ejemplo:

// Scala program of Scala Type hierarchy 
// Using AnyRef
  
// Creating object
object Geeks
{
  
    // Main method
    def main(args: Array[String])
    {
        val list: List[AnyRef] = List(
        "GFG", "GEEKSFORGEEKS"
            )
  
        list.foreach(element => println(element))
    }
}
Producción:

GFG
GEEKSFORGEEKS

 
Nothing y Null:
Nothing es una subclasificación de todos los tipos de valores, también se denomina tipo inferior. Escriba Nada Que no tenga valor. podemos usar Nothing para señalar la no terminación, como una excepción lanzada, la salida del programa o un bucle infinito.

Null es una subclasificación de todos los tipos de referencia. la palabra clave literal null puede identificar un solo valor. Null se proporciona principalmente para la interoperabilidad con otros lenguajes JVM.

Publicación traducida automáticamente

Artículo escrito por AkshayGulati 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 *