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 JacobZon Martes, 24 Octubre 2017 07:23 posted by JacobZon

    cialis sale nz
    buy cialis
    buy cialis in us
    buy cialis
    cialis by mail order

    Report
  • Comment Link Shannon Martes, 24 Octubre 2017 05:11 posted by Shannon

    tarot si no del amor significado de los suenos tarot egipcio el tarot
    delos arcanos tirada gratis significado los enamorados tarot marsella
    significado tarot el loco amor tarot y amor historia del tarot de marsella le soleil du tarot de
    marseille adivinar futuro con cartas del tarot gratis gitano una pregunta gratis videncia mercadolibre se busca tarotista tarot gratis enfemenino trabajo tarot arabe 2015 carta do tarot o diabo tiradas de cartas gratis del tarot del dia de hoy tirada tarot
    gratis para trabajo significado cartas tarot leonardo da vinci tarot sans bout tarot del amor
    los arcanos 3d tirar las cartas del tarot gratis en linea tarot gratis
    de hoy enfemenino tarot inca tarot de cartas gratis 2017 tarot por email fiable tarot gratis carta del
    dia gitano tarot significado cartas rider hacer una pregunta a tarot virtual tarot del dia tirada gratis tarot tirada
    gratis del dia como leer el tarot rider pdf el sol tarot jodorowsky tarot sagitario gratis tarot gratis por telefono chile cartas tarot marsella para imprimir tarot de la suerte
    tarot laboral gratis 2016 el tarot gitano gratis en linea
    baraja de tarot egipcio significado de la torre
    en el tarot del amor libro la via del tarot jodorowsky pdf interpretar
    las cartas del tarot gratis tarot amor halloween alicia
    galvan tarot sagitario gratis numerologia tarot sabio tarot
    de las hadas del amor gratis tarot economico 10 euros 30 minutos tarot y runas amigo tarot preguntas gratis tirada de tarot marilo casals tarot para hoy
    capricornio

    Report
  • Comment Link Maybelle Martes, 24 Octubre 2017 04:06 posted by Maybelle

    This year, American Express has worked with Panorama to add an integration that allows American Express Card Members with the User ID and Password to connect with all the Panorama app and seamlessly enroll in a very $10
    back offer redeemable after they use their Amex Card at Panorama merchants.

    Report
  • Comment Link ThomasVok Martes, 24 Octubre 2017 01:16 posted by ThomasVok

    can you order cialis
    buy cialis
    cheap cialis super active
    cialis cost
    cheap brand name cialis

    Report
  • Comment Link Jaunita Martes, 24 Octubre 2017 00:22 posted by Jaunita

    horoscope celibataire poisson christine haas horoscope balance 2017 horoscope sagittaire du jour 2017 horoscope du mois vierge travail horoscope 20 min gemeaux horoscope du jour du
    taureau 2e decan horoscope du jour dragon horoscope aout 2017 poisson femme cherie horoscope horoscope lion du mois d'avril horoscope jour lion femme mon horoscope du poisson horoscope cosmopolitan vierge horoscope sagittaire juin 2017 travail date de l horoscope horoscope sante poisson horoscope cancer de septembre horoscope du jour par decan horoscope dragon 2017 mois par mois horoscopes
    balance aujourd'hui horoscope du jour balance temporel voyance horoscope amour lion aout 2017 horoscope lion du jour sur miss horoscope
    horoscope de sagittaire du jour horoscope des femmes balance horoscope
    du 21 juin balance calcul ascendant horoscope horoscope rtl taureau horoscope
    journalier signe le capricorne gemeau horoscope juin 2017 horoscope balance jour amour msn horoscope du jour horoscope dates des signes horoscope femme lion homme taureau horoscope lion aujourd'hui
    amour horoscope gemeaux du mois de juin 2017 horoscope
    balance deuxieme decan horoscope du jour cancer rtl2 horoscope claude
    alexis fevrier horoscope homme gemeaux 2017 horoscope gemeaux le parisien horoscope
    du journal le monde idealvoyance horoscope du jour meilleur horoscope avis horoscope capricorne rtl marie claire horoscope lion horoscope du jour yahoo capricorn horoscope overview horoscope
    wikipedia cancer signe solaire horoscope

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

    buy generic cialis uk
    cialis cost
    cialis usa buy
    cialis cost
    buy cialis england

    Report
  • Comment Link Agustinqueby Lunes, 23 Octubre 2017 22:13 posted by Agustinqueby

    cbd oil for pain - https://cbdoilsale.org dosage for cbd oil with breast cancer - https://cbdoilsale.org reviews of cbd oil for anxiety - cbdoilsale.org cbd oil for cancer dogs - cbdoilsale.org

    cbd oil for dogs - https://cbdoilsale.org cbd oil mg dosage for anxiety - cbdoilsale.org cbd oil benefits for cancer - https://cbdoilsale.org best way to use cbd oil for pain management - https://cbdoilsale.org

    Report
  • Comment Link Agustinqueby Lunes, 23 Octubre 2017 22:06 posted by Agustinqueby

    cbd oil benefits 2016 - https://cbdoilsale.org cbd oil for anxiety dosage - https://cbdoilsale.org best cbd oil for pain reviews - cbdoilsale.org cbd oil for cancer treatment of liver disease - https://cbdoilsale.org

    cbd oil benefits and side effects - cbdoilsale.org miracle cbd oil for sale amazon - cbdoilsale.org cbd oil side effects on kidneys - https://cbdoilsale.org benefits of cbd oil for cancer - https://cbdoilsale.org

    Report
  • Comment Link Regena Lunes, 23 Octubre 2017 22:01 posted by Regena

    safe to take viagra every day
    viagra
    viagra in high bloodd pressure
    [url=http://www.aviagrant.com]buy-viagra[/url]
    more powerful than viagra

    Report
  • 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

Leave a comment

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

FaLang translation system by Faboba