Scala es un lenguaje que combina la programación orientada a objetos y la funcional,además es de tipado estático, esto quiere decir que se debe tener cuidado a la hora de definir variables (su tipo).
Si defines una variable es necesario hacer uso de var y val.
var nombre:String="Alfonso"
val nombre_estatico:String="Mariana"
Si tratamos de reasignar valores obtendremos:
nombre="Alfonso Quaron" //es válido,por que usamos var
nombre_estatico="Mariana Alcantara" //no es válido, usamos val
Ahora creamos dos clases:
- Base
- Subclase
class Base(val nombre:String=null){}
class SubClase(override val nombre:String=null) extends Base(nombre){}
object Scalar{
def main(args:Array[String]):Unit={
val base=new Base() //se puede tomar como null
val sub=new SubClase()
//si trato de de reasignarl valor al miembro nombre ocurrirá un error
base.nombre="Base"
sub.nombre="SubClase"
}
}
Entonces lo correcto sería:
val base=new Base("Base")
val sub=new SubClase("SubClase")
Console.println(base.nombre)
Console.println(sub.nombre)
Resultado:
Base
SubClase
Lenguajes como Python , Ruby y Groovy permiten reasignar valores a las variables.
En Python:
dato="Las serpientes se arrastran por el piso"
print type(dato)
#ahora cambiamos su 'tipo' y valor
dato=12.90
print type(dato)
En Ruby:
dato="Un diamante en bruto"
print dato.class
#ahora cambiamos su 'tipo' y valor
dato=23.0
print dato.class
En Groovy:
dato="Es un ambiente muy Groovy"
dato instanceof String //nos da true
dato=123
dato instanceof Integer //nos da true
En conclusión tenemos:
Tipado dinámico
- Se permite reasignar valores
- El tipo de dato no es fijo
Tipado estático
- No se permite reasignar valores
- El tipo de dato no debe cambiar
No hay comentarios:
Publicar un comentario