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.

5764 comments

  • Comment Link Fastest Payday Loan Domingo, 21 Enero 2018 06:11 posted by Fastest Payday Loan

    payday loans online loans money payday loans online no credit check payday loans no credit check same day

    Report
  • Comment Link Hizhausat Domingo, 21 Enero 2018 05:56 posted by Hizhausat

    generic cialis online
    us cialis pharmacy
    http://gencialismedonlinemrx.com
    cialis online canadian pharmacy
    buy cialis online

    Report
  • Comment Link Jacob Domingo, 21 Enero 2018 05:22 posted by Jacob

    payday loans
    payday loans no credit check
    payday loans online
    payday loans
    payday loans

    Report
  • Comment Link Jamesneabe Domingo, 21 Enero 2018 05:00 posted by Jamesneabe

    cash loans online online payday loan application online payday loan instant approval online payday loan instant approval payday loans online direct lenders payday loans online the best online payday loans easy payday loans online online payday advance loan online payday advance loan speedy cash payday loans online paydayloan argument essay illustration essay argument essay help for essay writing

    Report
  • Comment Link dooplapht Domingo, 21 Enero 2018 05:00 posted by dooplapht

    cheap cialis
    ordering cialis online
    http://gencialismedonlinemrx.com
    buy online cheap cialis generic
    buy generic cialis

    Report
  • Comment Link Samuel Domingo, 21 Enero 2018 04:02 posted by Samuel

    online casinos 2016
    best us casinos online
    new usa online casinos 2017
    online casinos 2016

    Report
  • Comment Link Spotloan Domingo, 21 Enero 2018 04:01 posted by Spotloan

    payday advance payday advance payday advances advance payday

    Report
  • Comment Link Teri Domingo, 21 Enero 2018 03:53 posted by Teri

    plan cul mandelieu la napoule plan cul 91 plan cul 33 plan cul le bouscat porn plan cul plan cul doubs un plan cul presque parfait plan cul pornichet plan cul dans la region plan cul montmagny plan cul
    boulogne sur mer plan cul saint laurent du var plan cul
    balma plan cul dans les landes site pour plan cul gay plan cul st etienne gros
    plan cul plan cul corse du sud plan cul saint esteve plan cul riviere pilote plan cul le robert plan cul limoux plan cul sur bordeaux plan cul clichy plan cul bas rhin plan cul boulogne
    sur mer plan cul saint avold plan cul montrouge plan cul lozere plan cul saint laurent du
    var plans cul sans inscription plan cul hautmont plan cul eaubonne plan cul vendome plan cul 22
    plan cul annecy plan cul bouches du rhone plan cul dans le 59 plan cul cahors mon plan cul top site plan cul plan cul luce
    plan cul igny plan cul dans l eure plan cul sollies pont plan cul epinay sur
    orge plan cul sur roanne plan cul cernay plan cul bordeaux plan cul la celle saint cloud plan cul android plan de cul com plan cul
    pontivy plan cul dieppe plan cul mericourt plan cul saint dizier plan cul sur nice plan cul sur nimes plan cul le
    puy en velay plan cul orleans plan cul rodez plan cul gay toulon plan cul vitry le francois plan cul saint brice sous foret plan cul dans le 62 plan cul soir forum plan cul
    lyon plan cul six fours les plages premier plan cul plan cul vichy plan cul cahors plan cul dinan plan cul histoire plan cul berck plan cul cernay
    plan cul cherbourg plan cul saint fargeau ponthierry reconnaitre un plan cul
    plan cul rhone plan cul allier plan cul paris gratuit plan cul bouches du
    rhone plan cul saint claude plan cul rhone plan cul ville d'avray plan cul
    aniche plan cul marne plan cul bischwiller plan cul l'hay les roses plan cul savoie plan cul epinal plan cul luneville plan cul 62
    plan cul gay paris plan cul a bordeaux plan cul gagny plan cul
    coulommiers plan cul rambouillet plan cul villemomble plan cul fr plan cul sevran plan cul sorgues plan cul 95 plan cul eysines site pour trouver un plan cul plan cul
    saint julien en genevois plan cul picardie plan cul cenon plan cul angouleme plan cul bourgogne franche
    comte plan cul montlouis sur loire plan cul lormont plan cul saverne plan cul gaillard plan cul villefranche de rouergue plan cul alpes maritimes plan cul
    ou plus plan cul sur dunkerque plan cul briancon plan cul loir et cher plan cul sur annecy site pour plan cul gay plan cul passy plan cul paris gay plan cul
    vieille plan cul persan plan cul chaville plan cul mayotte plan cul gay lyon plan cul
    en gironde plan cul saint laurent du maroni plan cul trav
    plan cul evreux plan cul st etienne site de rencontre
    gratuit pour plan cul plan cul hoenheim plan cul a rennes
    plan cul d un soir site de plan cul gratuit plan cul bry sur
    marne plan cul routier plan cul herault salope cherche plan cul plan cul vence plan cul africaine plan cul 15 plan cul a lyon plan cul saint lo plan cul sur vannes plan cul avec une cougar
    plan cul biarritz plan cul tarbes plan cul rapide et gratuit plan cul fouesnant plan cul annonay plan cul le portel fille plan cul trouver plan cul paris plan cul sur tours
    plan cul dans ma ville plan cul 48 plan cul sainte savine ou trouver des plans cul plan cul
    cormeilles en parisis plan cul sartrouville plan cul ales plan cul le perreux sur marne
    site pour trouver plan cul plan cul deauville plan de cul com plan cul bayeux
    rencontrer un plan cul plan cul gay tours rencontre plan cul gratuit plan cul stiring
    wendel plan cul recherche rencontre pour plan cul gratuit plan cul a
    toulouse plan cul sorgues plan cul martigues plan cul en charente trouve un plan cul plan cul montigny les metz
    blog plan cul plan cul la chapelle sur erdre plan cul dans
    les landes plan cul hayange plan cul antibes plan cul pessac plan cul val d oise plan cul laval plan cul talant plan cul saint jean de braye plan cul 56 plan cul
    lillers plan cul carros plan cul pour se soir plan cul 78 plan cul gay marseille plan cul bischheim

    Report
  • Comment Link Essay Help Domingo, 21 Enero 2018 01:44 posted by Essay Help

    term paper term paper writer term paper help write a term paper

    Report
  • Comment Link Marcusmop Domingo, 21 Enero 2018 01:25 posted by Marcusmop

    how much are cialis pills
    cialis prices
    where to buy cialis no prescription
    buy cialis
    viagra cialis online order
    generic cialis
    cialis buy pattaya
    generic cialis at walmart
    buy cialis online with no prescription

    Report

Leave a comment

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

FaLang translation system by Faboba