Thursday, 11 July 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

Scala, java developer, he is capable to give trainings, for this reason he is curious by demand or when he really needs to learn something new.

Email This email address is being protected from spambots. You need JavaScript enabled to view it.

5828 comments

  • Comment Link EdwardTheva Saturday, 20 January 2018 20:31 posted by EdwardTheva

    buy cialis cheap canada
    buy cialis online
    buy cialis next day delivery
    cheap cialis
    cheapest cialis prescription
    generic cialis tadalafil
    cialis buy pattaya
    generic cialis tadalafil
    cialis women sale

    Report
  • Comment Link Jasonpen Saturday, 20 January 2018 20:22 posted by Jasonpen

    viagra price

    erection pills

    cheap cialis

    best generic viagra

    herbal viagra

    generic ed pills

    cialis daily

    viagra generic online

    http://pillssedkun.com/

    Report
  • Comment Link Mary Saturday, 20 January 2018 20:04 posted by Mary

    best online casino games free
    casino games free
    casino games slots
    pogo casino slots

    Report
  • Comment Link Sang Saturday, 20 January 2018 19:45 posted by Sang

    qual o preço médio do cialis
    http://buyscialisrx.com/ - cheap cialis online
    effet du cialis sur le coeur
    generic cialis online [http://buyscialisrx.com]
    cialis debat
    [url=http://buyscialisrx.com/]cialis online[/url]
    forum cialis original

    Report
  • Comment Link DanielWiz Saturday, 20 January 2018 19:42 posted by DanielWiz

    acheter cialis discount
    online cialis
    buy cialis canada yahoo answers
    cheap cialis
    buy cialis australia
    generic cialis at walmart
    cialis sale sydney
    cialis generic
    how do i order cialis

    Report
  • Comment Link Lelandcoite Saturday, 20 January 2018 19:34 posted by Lelandcoite

    If you are going for finest contents like me, only pay a visit this web page daily because it provides quality contents, thanks
    canadian pharmacies online

    Report
  • Comment Link StukovninaLib Saturday, 20 January 2018 18:45 posted by StukovninaLib

    ou acheter du viagra belgique

    http://viagrasoftpillsq.com/ - viagra online

    viagra soft tabs

    viagra genrico indio

    Report
  • Comment Link Jasonpen Saturday, 20 January 2018 18:39 posted by Jasonpen

    viagra generic name

    best pills ed

    cialis pills

    online generic viagra

    generic viagra

    male ed pills

    cialis generic

    generic viagra names

    http://secialispenz.com/

    Report
  • Comment Link IgoriLib Saturday, 20 January 2018 18:31 posted by IgoriLib

    can 40mg of cialis hurt

    http://cialisjqp.com/ - cialis cheap

    cialis cheapcialis 20 mg online kaufen

    http://cialisnji.com/ - buy cialis online

    cialis onlinepayday loans scandal

    http://soloadvance.com/ - personal loans

    cash advance

    Report
  • Comment Link Carolynamamb Saturday, 20 January 2018 18:19 posted by Carolynamamb

    payday loans online
    payday loans online
    payday loans
    payday loans

    Report

Leave a comment

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

FaLang translation system by Faboba