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 Fallon Sábado, 21 Octubre 2017 04:18 posted by Fallon

    where to buy viagra dubai
    http://viagrabs.com/ - viagra-online
    how long before sex should i take viagra
    generic viagra
    viagra side effects warnings
    [url=http://www.viagraeiu.com/]generic viagra[/url]
    at what age should you start taking viagra

    Report
  • Comment Link JakliniDig Sábado, 21 Octubre 2017 03:35 posted by JakliniDig

    is taking viagra daily bad
    http://viagrabs.com/ - generic Viagra
    23 year old taking viagra
    buy Viagra online
    what is the side effect of using viagra
    buy Viagra
    can you take viagra while breastfeeding

    Report
  • Comment Link RobertVoipt Sábado, 21 Octubre 2017 02:25 posted by RobertVoipt

    canada cialis pills
    buy viagra without a prescription
    canada world pharmacy
    generic viagra online canada pharmacy
    canada drug co

    Report
  • Comment Link Virgil Sábado, 21 Octubre 2017 01:13 posted by Virgil

    levitra buy singapore
    levitra online
    discount levitra online

    Report
  • Comment Link MaraLib Viernes, 20 Octubre 2017 19:18 posted by MaraLib

    cialis product

    http://cialiskjh.com/ - order cialis online

    generic cialis

    cialis gratuit

    Report
  • Comment Link Charlescam Viernes, 20 Octubre 2017 17:36 posted by Charlescam

    allopurinol buy allopurinol buy online http://allopurinol.work

    Report
  • Comment Link Bennycer Viernes, 20 Octubre 2017 17:13 posted by Bennycer

    amitriptyline generic for elavil http://amitriptyline.reisen
    furosemide purchase where to buy furosemide http://buyfurosemide.shop
    advair advair over the counter http://advair.work
    allopurinol zyloprim allopurinol http://buyallopurinol.store
    buy prozac prozac http://buy-prozac.reisen
    buy diflucan diflucan http://buy-diflucan.work
    zetia zetia http://zetia.mba
    cytotec buy cytotec http://buycytotec.reisen
    neurontin neurontin http://neurontin.directory
    buy phenergan buy phenergan http://buyphenergan.reisen

    Report
  • Comment Link Felisha Viernes, 20 Octubre 2017 15:40 posted by Felisha

    produit beaute bio homme desherbant bio produits d'entretien bio fait maison meilleur shampoing bio naturel creme pour
    le corps peau tres seche bio savon noir liquide bio cheveux serviette hygienique bio maternite masque bio cheveux secs et abimes deo biopha jardinage biologique association de plantes
    tisane bio romon nature articulations huile essentielle lavande aspic
    bio lait demaquillant bio avis masque biologique carita
    complement alimentaire cheveux biotine tisane biorigine ventre plat avis comment utiliser huile essentielle tea tree acne herbicide bio controle huile essentielle tea
    tree utilisation pour les puces des chats huile demaquillante bio marionnaud produit beaute bio marque acerola bio 2000
    phyto actif bio detox l'autre the avis tisane detox bio romon savon liquide
    biodegradable huile visage bio peau grasse phytosun aroms verrerie
    pour diffuseur d'huiles essentielles achat alimentation bio en ligne huile essentielle
    lavande fine sommeil biologique recherche creme contour des
    yeux reviews demaquillant yeux bio maison jardinage biodynamique calendrier
    produit de beaute bio pas cher masque bio cellulose barbara gould avis cosmetique bio
    francaise gelee royale bio aragan prix savon naturel bio beurre
    de karite bio pour la peau deodorant bio homme shampooing
    doux ph neutre bio cheveux bio huile essentielle lavande officinale utilisation infusion biorigine ventre plat shampoing colorant bio pour homme shampoing bio pour cheveux secs et frises savon biodegradable decathlon tisane bio nutrisante brule graisse
    avis huiles vegetales bio alimentaires lessive bio maison cendre marche cosmetique bio france

    Report
  • Comment Link Kurt Viernes, 20 Octubre 2017 15:39 posted by Kurt

    9 wands tarot as feelings for someone buckland romani tarot tarot reading for job interview tarot card meanings devil upside down native american tarot
    cards meanings tarot spread for spell casting comic tarot online 3
    wands tarot yes or no tarot reading online indonesia birth date tarot card
    3 of wands tarot verbatim chariot tarot card dusty white tarot cleansing tarot cards incense free tarot reading yes no tarot cards online
    reading tower tarot health soul mate tarot spread devil tarot matrix tarot yes no oracle meaning of various tarot cards full moon tarot spread
    june 2017 8 of pentacles learn tarot tarot nine of pentacles
    tarotcon uk the lovers tarot in love reading tarot six of cups love thoth tarot
    the magician question tarot oui ou non free online
    relationship tarot 8 cups tarot health antique tarot card
    decks for sale new tarot sites direct question tarot spread truth
    star tarot card what does the star mean in tarot tarot
    means in urdu antique tarot card decks for sale 1 el mago tarot egipcio tarot horoscope astrology scorpio
    tarot card reading july 2017 thoth tarot 10 of cups legacy of the divine tarot meanings 5
    of swords tarot tarot adivinatorio por denis lapierre best tarot reading
    dublin what tarot cards mean love how many kinds of tarot cards are there tarot card reading two of cups druid tarot card meaning

    Report
  • Comment Link MariLib Viernes, 20 Octubre 2017 15:06 posted by MariLib

    generic vs viagra

    http://viagrauysc.com/ - buy generic viagra

    generic viagra online

    next day delivery viagra uk

    Report

Leave a comment

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

FaLang translation system by Faboba