Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scala: Type System Review

Scala: Type System Review

Una de las grandes virtudes de Scala es su sistema de tipos, simple y poderoso. La idea de la charla es recorrer distintas características del mismo, presentando alguna curiosidad y otros detalles avanzados para tratar de entenderlo mejor y usar al menos un poco más de lo que tiene para ofrecer

Avatar for Javier Buquet

Javier Buquet

August 18, 2016
Tweet

Other Decks in Programming

Transcript

  1. Tipo de Dato Es una propiedad de cierto valor (o

    dato), que determina: ➔ Qué valores puede tomar ➔ Qué operaciones se le pueden aplicar ➔ Cómo es representado internamente por la máquina
  2. Scala Type System Strong Inference Static Todo es un objeto

    Parametrized Structurals Implicits Variance Bounds
  3. Tipos Parametrizados List [ T ] Bounds: ➔ T <:

    Fruit Upper Bound ➔ T >: Fruit Lower Bound
  4. Duck Typing If it looks like a duck, swims like

    a duck and quacks like a duck, then it is probably a duck Structural ✓ Type safe ✓ Chequeado en tiempo de compilación def quack ( duck: { def quack(): String } ) = { println ( duck.quack() ) }
  5. Conversiones Implícitas ( 1 to 4 ).foreach( println ) //

    print out 1 2 3 4 $> val i: Int = 3.5 => ERROR $> implicit def doubleToInt (x: Double) = x.toInt $> val i: Int = 3.5 => i: Int = 3 Reglas para estas conversiones: ➔ Sólo ‘implicit’ explícitos ➔ En el scope como identificador ➔ Sin ambigüedad ➔ Un solo nivel de conversión ➔ Explícitos primero