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.

1928 comments

  • Comment Link Mervin Viernes, 20 Octubre 2017 12:39 posted by Mervin

    waite tarot tarot of transformation willow arlenea tarot card meaning 3 of swords free tarot reading
    my life tarot xvii pauline's palm & tarot card readings esl tarot cards printable angel deck tarot cards hierophant tarot reversed what is my tarot card
    trusted tarot eight of cups tarot quizlet today
    tarot reading by prem kumar tarot six of cups yes
    or no 2 swords tarot as a person leo tarot card 2017 playing card tarot reading online high priestess tarot love
    meaning devil tarot feelings the key to the tarot a.e.
    waite punto tarot libra agosto aquarius tarot reading 2017 june 10 swords tarot meaning tarotforum six of swords as feelings tarot of trees mystic house londa tarot tarot game
    definition aries tarot card 2017 tarot angel meaning of the justice
    tarot card in love 10 of pentacles reversed tarot card meaning amour tarot pasqui tarot 130 props spells with tarot cards
    the priestess tarot cards my yes no tarot cards thoth tarot eight of cups
    121 destiny tarot aol tarot horoscope free tarot spreads
    relationship black cats tarot cards golden universal tarot card meanings the pope tarot card meanings free tarot card spells free decan tarot the emperor tarot
    in feelings sexuality tarot card crowley thoth tarot card meanings
    sha tarot 7 jezli how to do self tarot reading

    Report
  • Comment Link RobertVoipt Viernes, 20 Octubre 2017 10:34 posted by RobertVoipt

    canada meds viagra
    canadian online pharmacy cialis
    how does cialis work
    london pharmacy canada
    canada prescriptions online

    Report
  • Comment Link Renate Viernes, 20 Octubre 2017 07:50 posted by Renate

    boutique bio en ligne discount masque capillaire bio maison tampon hygienique
    bio avis cosmetiques bio monde meilleurs cosmetiques bio keratine bio maxi baie de goji bio savon liquide bio savon noir bio pas cher
    apres shampooing bio cheveux gras creme anti age
    bio homme shampoing bio sans sulfate sans silicone shampoing solide bio
    secret de provence creme visage bio a faire soi-meme coffret maquillage
    bio pas cher serviette hygienique biologique masque cheveux secs maison bio acheter tissu eponge bio poudre d'acerola bio 500g -
    fructivia creme anti age bio huile essentielle eucalyptus radiata proprietes
    huile essentielle bio lavande aspic complement alimentaire avec biotine meilleur magasin bio en ligne huiles
    vegetales bio pas cheres masque bio pour cheveux fins savon liquide bio
    maison bio cosmetiques zorah serviettes hygieniques
    bio grande surface gelee royale bio nutrisante
    avis utilisation huile essentielle tea tree acne bio en ligne pas cher masque bio cheveux
    maison masque bio cheveux gras epicerie bio en ligne moins cher contour des yeux bio monoprix
    utilisation huile essentielle tea tree mycose huiles essentielles pour diffuseur pas cher shampoing biolage jean coutu lait demaquillant
    bio sans alcool liquide vaisselle bebe biolane huile essentielle tea tree
    pure visage baies de goji bio moins cher huile essentielle lavande aspic cheveux comment
    faire un shampoing bio maison tampons bio pharmacie
    herbicide biologique homologue tisanes bio tisane biofloral huiles vegetales bio

    Report
  • Comment Link Heriberto Viernes, 20 Octubre 2017 04:00 posted by Heriberto

    viagra and retinal problems
    http://www.bioshieldpill.com/" - buy-generic-viagra
    viagra shape of the pill
    buy-generic-viagra
    what do i have to do to get viagra
    [url=http://www.bioshieldpill.com/]generic-viagra-online[/url]
    how to obtain a viagra prescription

    Report
  • Comment Link Jamesneabe Viernes, 20 Octubre 2017 02:54 posted by Jamesneabe

    essay writing service essay writing service review should schools have homework best essay writing service reviews

    Report
  • Comment Link JesseVog Viernes, 20 Octubre 2017 01:34 posted by JesseVog

    do have see doctor get viagra
    buy viagra online
    viagra online toronto
    viagra prices
    cheap viagra from canada online

    Report
  • Comment Link Incofsimmifffany Jueves, 19 Octubre 2017 07:19 posted by Incofsimmifffany

    losartan cialis
    http://www.viagraeiu.com - http://www.viagraeiu.com
    le cialis ne me fait rien
    buy cheap viagra
    obat kuat cialis 20 mg
    generic viagra online
    how often should i take cialis 20 mg

    Report
  • Comment Link MelsLib Jueves, 19 Octubre 2017 07:11 posted by MelsLib

    cheapest cialis venezuela

    cialis online

    cialis online

    buy generic cialis australia

    Report
  • Comment Link MelsLib Jueves, 19 Octubre 2017 05:09 posted by MelsLib

    cialis original ohne rezept

    buy cialis

    cialis

    cipla generische cialis

    Report
  • Comment Link Homework Good Or Bad Jueves, 19 Octubre 2017 04:11 posted by Homework Good Or Bad

    help me with my essay write my essay write my essay custom essay writing

    Report

Leave a comment

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

FaLang translation system by Faboba