Jueves, 11 Julio 2013 19:34

Resumenes del Libro Scala para impacientes de Cay S. Horstmann

Hola a tod@s, con este artículo empezamos una serie de publicaciones de artículos que presentarán resúmenes del Libro "SCALA for Impatient", como resultado del ciclo de capacitaciones internas realizadas en Genso iniciativas web (poner enlace principal de la pagina web) para la mejora continua de los integrantes, espero que sea de ayuda cada una de las publicaciones que realizaremos, en caso de tener alguna dificultad no duden en consultar.

¿Qué es Scala?
Scala es un moderno lenguaje de programación multi-paradigma diseñado para expresar patrones de programación comunes de una forma concisa, elegante, y de tipado seguro. Integra fácilmente características de lenguajes orientados a objetos y funcionales.

1 Capítulo I.- Información Básica

1.1 Interprete de Scala

Para probar y practicar con algunos ejemplos es necesario instalar SCALA en su ordenador, luego asegurarse de que scala/bin este agregado en el PATH, una vez realizado lo anterior usted debe abrir una pantalla de símbolo del sistema o de comando y sólo escribir la palabra scala, luego pulsar enter, de esta forma ingresa al intérprete de SCALA como se puede ver en la figura Nro. 1

ÿ Inicio/Accesorios/símbolo_del_sistema/

Fig. 1

En la figura 1 puede observar que al ingresar una línea de código el interprete inmediatamente le muestra el tipo de dato y el resultado asignado a una variable por defecto, en el primer ejercicio la variable es res0.

Ejemplos:

scala> 8 * 5 + 9 
scala>  res0 * 0.5
scala> “Hola,  “ + res1
res0: Int = 49
res1:  Double = 24.5
res2: String = Hola, 24.5

Dentro del intérprete puede llamar a algunos métodos tan solo pulsando la tecla TAB, en caso de haber varios el interprete le muestra que métodos puede utilizar, por ejemplo en la variable res2 llamamos al método que convierte a mayúsculas el texto:

scala> res2.toUpperCase
res3: String = HOLA, 24.5

1.1 Declarar Variables

En el intérprete de Scala usted puede declarar sus propias variables por ejemplo:

scala> val respuesta = 10 * 5 + 4
respuesta: Int = 54

Debe tener en cuenta que al declarar una variable con val el resultado que le asigne es constante, es decir; que no puede asignarle un nuevo valor, si lo intenta le saldrá un mensaje de error, ejemplo:

scala> respuesta = 10
< console > :8: error: reassignment to val

Si desea tener una variable que no sea constante, entonces debe declararla como var, por ejemplo:

scala> var prueba = 10 * 7 + 3
prueba: Int = 73
scala> prueba = 4
prueba: Int = 4

Ojo. Si bien puede cambiar el valor de la variable, debe tener cuidado en reasignar por otro valor del mismo tipo.

Al declarar una variable en scala no es necesario que indique que tipo de dato desea agregar, el intérprete induce qué tipo de dato esta agregando. Lo mejor es que usted declare el tipo de dato que intenta asignar, ejemplo:

scala> val saludo: String = "Hola"

Usted puede declarar varias variables a la vez, sólo debe separar las variables usando una coma "," como puede ver en el ejemplo:

scala> val num1, num2, num3 = 10
num1: Int = 10
num2: Int = 10
num3: Int = 10

1.2 Tipos comúnmente usados

Scala tiene tipos de datos que utiliza de forma común como ser: Byte, Chart, Short, Int, Long, Float, Double and Boolean.

El intérprete de scala puede realizar conversiones entre variables primitivas y wrapper sin dificultad. Además se puede modificar un String con con los métodos que tiene la clase StringOps.

Recuerde que scala utiliza métodos no casts para realizar conversiones de números.

1.3 Operadores aritméticos y sobrecarga

Scala utiliza operadores usuales como + - * / % y los operadores de comparación & | ^ >> <<, donde estos operadores son realmente métodos, por ejemplo:

a.method(b) donde su forma abreviada es a method b

El nombre del method puede ser + por ejemplo.

scala> 1.+(10)
res5: Double = 11.0

SCALA permite la sobrecarga de operadores:

contador+=1 que es lo mismo que en java contador++

1.4 Llamadas a funciones y métodos

Para realizar alguna operación se puede importar funciones matemáticas propias de SCALA, por ejemplo:

scala> Import scala.math._

Usted puede usar ._ de la misma forma que utiliza * en java

Para usar los métodos estáticos, pow,sqrt, min,Pi. Semejantes a Java.

Scala no tiene métodos estáticos, pero cada clase tiene un companion object donde sus métodos trabajan de forma similar a un método estático en java, ejemplo:

scala> BigInt.probablePrime(100, scala.util.Random)
res6: scala.math.BigInt = 1036819622350713618865780051451

Los métodos que no presentan parámetros no es necesario utilizar paréntesis.

scala> "Hello".distinct
res7: String = Helo

1.5 El metodo Apply

Este método es parecido al charAt(i) de java y s[i] de C++. Es un método que convierte tipos de datos, donde enseña a la clase como convertirse a un cierto tipo de dato requerido.

Todas las clases tienen su Apply.

Ejemplo:

scala> "Hello"(4)
res8: Char = o
scala> "Hello".apply(4)
res9: Char = o
scala> BigInt("1234567890")
res10: scala.math.BigInt = 1234567890
scala> BigInt.apply("1234567890")
res11: scala.math.BigInt = 1234567890

1.6 Scaladoc

Revisar www.scala-lang.org /api

Fuente: SCALA for the Impatient by Cay S. Horstmann

Artículo elaborado de manera conjunta por: Nataly Nanda Huanca Patzi y Apolinar Linares Flores

Apolinar Linares Flores

Desarrollador en Scala, Java, apto para dar capacitaciones, por lo tanto curioso a fuerza o cuando realmente le interesa aprender algo nuevo.

Email Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

1929 comments

  • Comment Link NadezhdaLib Lunes, 23 Octubre 2017 21:28 posted by NadezhdaLib

    cialis forum taglich

    http://cialisuyb.com/ - buy cialis

    cialis online

    only for you cheap 25mg cialis

    Report
  • Comment Link NadezhdaLib Lunes, 23 Octubre 2017 21:00 posted by NadezhdaLib

    uk cialis fast delivery

    http://cialisuyb.com/ - buy cialis

    order cialis online

    taking low dose cialis

    Report
  • Comment Link Erma Lunes, 23 Octubre 2017 20:43 posted by Erma

    tarot jouer excuse logiciel tarot gratuit pour mac tarot
    jeu g tarot rtl tvi tarot amour vrai gratuit carte tarot n 13 fftarot classement national 2017 tarot arcane majeur 20 jeu tarot a quatre
    arcane du tarot 14 tarot gratuit selon ton avenir tirage
    oui non tarot gratuit tirage tarot immediat en ligne gratuit bien jouer aux tarots association jugement imperatrice tarot
    tirage tarot gratuit selon ton avenir tarot multijoueur en ligne tirage tarot
    amour belline tarot amour gratuit magie voyance carte tarot amoureux
    signification tarot aufeminin domino explication carte tarot tarot carre magique gratuit tirage tarot avenir en ligne lame tarot 17 tarots tirage logiciel tarot divinatoire tirage
    tarot signification tarot selon divine tarot tarot gratuit tirage
    marie claire tarot amour reponse immediate tarot carte le diable
    tarot amour gratuit du jour tarot divinatoire d avenir
    rtl tarot du jour gratuit tarot gratuit lambert tarot amour gratuit 2011
    majalah femina tarot calcul point tarot en ligne tarot
    oui non amour serieux tarot finance gratuit tarot matthieu
    tarot du jour 123 tirage tarot gratuit en ligne argent allo tarot rtl tarot du jour
    pour le travail interpretation tarot le jugement livre tarot divinatoire pdf le diable tarot amour

    Report
  • Comment Link ThomasVok Lunes, 23 Octubre 2017 20:40 posted by ThomasVok

    cialis c20 pills
    cheap cialis
    where to get cialis cheap
    cialis cost
    cheapest cialis world

    Report
  • Comment Link BnrfsGrorse Lunes, 23 Octubre 2017 20:38 posted by BnrfsGrorse

    viagra free samples - http://genericviagra-onat24.com/
    viagra pharmacy online [url=http://genericviagra-onat24.com/]viagra pills[/url] ’

    Report
  • Comment Link Sonjavaw Lunes, 23 Octubre 2017 12:45 posted by Sonjavaw

    cannabis oil capsules for sale cbd cannabis pills for sale cbd pills for anxiety dosage - https://cbdpillssale.com

    cbd pills for pain through amazon - cbdpillssale.com cbd pills for dogs dosage for pain - https://cbdpillssale.com cbd pills for sale in colorado - https://cbdpillssale.com

    Report
  • Comment Link Sonjavaw Lunes, 23 Octubre 2017 11:43 posted by Sonjavaw

    cbd cannabis pills for sale cbd pills for sale - cbdpillssale.com cbd pills for pain for sale - https://cbdpillssale.com

    cbd pills benefits for lung cancer - https://cbdpillssale.com cbd pills benefits and uses in books - https://cbdpillssale.com cbd oil capsules for sale

    Report
  • Comment Link Sonjavaw Lunes, 23 Octubre 2017 07:22 posted by Sonjavaw

    cbd pills for sale vape pens - cbdpillssale.com cbd pills for sale in colorado springs - https://cbdpillssale.com best cbd pills for bone cancer pain - https://cbdpillssale.com

    cbd pills side effects in cats - cbdpillssale.com cbd oil capsules best cbd pills for bone cancer pain - cbdpillssale.com

    Report
  • Comment Link Leah Lunes, 23 Octubre 2017 03:37 posted by Leah

    tac dung phu cua thuoc viagra
    http://augary.com/" - viagra online
    how viagra was created
    generic viagra online
    will viagra work for me
    [url=http://augary.com/]buy viagra[/url]
    kesan sampingan ubat viagra

    Report
  • Comment Link Rose Domingo, 22 Octubre 2017 18:23 posted by Rose

    viagra and sleeplessness
    buy-viagra-online
    viagra in nottingham
    [url=http://www.viagranit.com/]viagra-online[/url]
    otc similar to viagra

    Report

Leave a comment

Make sure you enter the (*) required information where indicated. HTML code is not allowed.

FaLang translation system by Faboba