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.

1191 comments

  • Comment Link Ke toan Ha Noi Martes, 26 Septiembre 2017 10:12 posted by Ke toan Ha Noi

    http://daotaoketoanhn.edu.vn/giao-trinh-tu-hoc-tin-phong-4899/
    http://daotaoketoanhn.edu.vn/chuyen-doi-file-pdf-sang-word-4903/
    http://daotaoketoanhn.edu.vn/thi-cap-chung-chi-hanh-nghe-dich-vu-ke-toan-2017-4909/
    http://daotaoketoanhn.edu.vn/ho-so-xin-viec-can-nhung-giay-to-gi-4923/

    Report
  • Comment Link Jamesneabe Martes, 26 Septiembre 2017 10:08 posted by Jamesneabe

    Continue

    Report
  • Comment Link VomirLib Martes, 26 Septiembre 2017 09:21 posted by VomirLib

    what is the generic for viagra

    http://viagrabuygenzx.com/ - cheap viagra

    viagra

    buy cheapest viagra from uk

    Report
  • Comment Link Johnneabe Martes, 26 Septiembre 2017 08:57 posted by Johnneabe

    https://bestpaydayloansonline.us.com/ - Check This Out

    Report
  • Comment Link Alvinsnoma Martes, 26 Septiembre 2017 08:48 posted by Alvinsnoma

    canada goose jacka nho4ss
    parajumpers jacka outlet btis2h
    canada goose jacka hn0251
    parajumpers jacka outlet 2ggm8b
    parajumpers dam jacka
    parajumpers vast dam
    canada goose jacka k9rep2
    moncler online outlet cd9zqa
    moncler online outlet kssmwi
    billiga parajumpers outlet store
    parajumpers jacka outlet 0gqzeb
    parajumpers jacka outlet 55s0d7
    parajumpers jacka outlet c9mfpn
    canada goose jacka vo50q9
    canada goose jacka lq56ps
    billiga parajumpers jackor
    moncler online outlet ipg6sk
    moncler online outlet dknno7
    canada goose jacka gcs5gs
    moncler online outlet gmykge
    moncler online outlet gs02g5
    parajumpers jacka outlet 1vms5q
    parajumpers jacka herr
    canada goose jacka hzztno
    parajumpers jacka outlet 8gzsbm
    parajumpers rea sverige
    moncler online outlet mldzur
    parajumpers jacka outlet 25ga6e
    canada goose jacka rhs131
    moncler online outlet f6b5si
    moncler online outlet gpwv8s
    billiga parajumper outlet
    parajumpers jacka outlet 0s720v
    parajumpers rea herr
    parajumpers jacka outlet 8ol8b0
    canada goose jacka rehvsy
    parajumpers jacka sverige
    billiga parajumpers outlet
    parajumpers jacka outlet bpylu8
    parajumpers jacka outlet awkvra
    canada goose jacka qslks7
    moncler online outlet iwp1c5
    om sveriges forenade studentkarer
    parajumpers jacka outlet ahsyst
    billiga parajumpers denali
    parajumpers jacka outlet 6robis
    billiga parajumpers jacka rea
    canada goose jacka um830g
    parajumpers jacka outlet 3cqnqg
    moncler online outlet i3eu5w
    parajumpers jacka outlet 6atc3s
    parajumpers jacka outlet 12ibfh
    parajumpers jacka outlet 9urifd
    parajumpers jacka outlet 286gi9
    parajumpers jacka outlet 3iib83
    moncler online outlet igau5e
    parajumpers jacka outlet 9asiq4
    moncler online outlet nusq8f
    parajumpers rea dam
    parajumpers jacka outlet 02gsit
    parajumpers jacka outlet agaa50
    billiga parajumpers outlet sverige
    moncler online outlet lsrubs
    canada goose jacka hf3ova
    parajumpers jacka outlet 8td4f1
    canada goose jacka izn2hm
    parajumpers jacka outlet 5ioawr
    parajumpers jacka outlet dmd2eo
    parajumpers jacka outlet 3pahu7
    parajumpers jacka outlet 70k7f3
    canada goose jacka qyapd4
    parajumpers jacka outlet 68iwp1
    moncler online outlet g3ukfg
    canada goose jacka ksk2qg
    moncler online outlet i86ufm
    billiga parajumper jacka
    parajumpers jacka outlet cl2nhw
    parajumpers jacka outlet 7kqagu
    billiga jacka parajumpers
    canada goose jacka i4qags
    canada goose jacka fnnevo
    parajumpers dam billigt
    parajumpers jacka dam gloria
    parajumpers jacka online
    moncler online outlet ecwsg1
    canada goose jacka g9myn2
    billiga parajumpers long bear
    billiga parajumper kodiak
    billiga parajumpers jacka outlet
    parajumpers jacka outlet a0f08s
    parajumpers jacka barn
    parajumpers kodiak herr
    moncler online outlet g1snpt
    moncler online outlet kspbzl
    moncler online outlet eovacw
    parajumpers jacka outlet 5dhp08
    parajumpers jacka outlet 1hfhrc
    parajumpers jacka rea
    parajumpers jacka outlet cdyf6p
    canada goose jacka puypw3
    parajumpers long bear sale
    canada goose jacka gfts7d
    parajumpers jacka outlet 7rgbv1
    canada goose jacka etqpcl
    canada goose jacka ormpf1
    canada goose jacka eg6zem
    moncler online outlet i93dgk
    parajumpers jacka outlet 09ytr8
    canada goose jacka g79s13
    parajumpers jacka outlet 0s02u3
    billiga parajumpers jacket
    parajumpers jacka outlet 2lan8z
    parajumpers jacka outlet 03q4gy
    moncler online outlet hrrvtb
    moncler online outlet g1rd2w
    billiga parajumpers stockholm
    canada goose jacka msvsip
    canada goose jacka iu9r0e
    moncler online outlet k29l14
    canada goose jacka fvv8gb
    canada goose jacka pse9rs
    parajumpers jacka outlet 0lety1
    canada goose jacka g7s8hh
    canada goose jacka ghomui
    parajumpers long bear rea
    moncler online outlet lqrhsf
    moncler online outlet ngsp7q
    canada goose jacka lp5bvn
    parajumpers jacka outlet ca46id
    parajumpers jacka dam rea
    moncler online outlet hgqmlo
    moncler online outlet gcsu78
    moncler online outlet is41nq
    moncler online outlet g8sess
    parajumpers jacka outlet 9qzi6n
    billiga parajumpers kodiak women
    canada goose jacka oahgin
    canada goose jacka nkgns4
    parajumpers jacka outlet a6f326
    moncler online outlet kypetu
    parajumpers jacka outlet 8focsq
    billiga parajumpers jacka dam
    parajumpers jacka outlet 6rrhpu
    parajumpers jacka outlet 7ow0h2
    parajumpers kodiak dam sverige
    canada goose jacka urlehs
    canada goose jacka haf1fs
    canada goose jacka rgmlp5
    canada goose jacka p04arl
    canada goose jacka hmsvet
    moncler online outlet lk6i1k
    parajumpers jacka outlet aswa56
    parajumpers outlet store
    parajumpers jacka outlet 3gmykg
    parajumpers jacka outlet bg2h4g
    parajumpers jacka dam var
    parajumpers jacka outlet b6wqg4
    canada goose jacka uvramc
    parajumpers jacka outlet dkcofu
    parajumpers jacka outlet 2485tq
    parajumpers jacka outlet 4c4glc
    billiga parajumpers online
    parajumpers jacka outlet cu368m
    parajumpers jacka outlet 4grhbq
    billiga parajumpers jacka online
    moncler online outlet eaouyi
    parajumpers jacka pris
    moncler online outlet l3gdlg
    canada goose jacka o7uis9
    parajumpers jacka outlet 9y7g0z
    parajumpers jacka billigt
    parajumpers jacka outlet 879esl
    parajumpers jacka outlet 4g4aog
    canada goose jacka ltsb4d
    moncler online outlet nmkz0g
    canada goose jacka l6an8s
    canada goose jacka iqnfk7
    moncler online outlet grobwn
    parajumpers vast herr
    canada goose jacka g5idcm
    canada goose jacka li9sf6
    canada goose jacka ppll0a
    ny utredning nationell strategi internationalisering
    billiga parajumpers kodiak
    canada goose jacka v35000
    parajumpers jacka outlet 0fshel
    canada goose jacka ef5i93
    parajumpers jacka outlet c52n76
    parajumpers jacka outlet arslyh
    canada goose jacka fivzw6
    billiga parajumpers sverige
    canada goose jacka qp2g0p
    canada goose jacka oqfblh
    parajumpers jacka outlet 50wrgt
    parajumpers jacka outlet 1a1m7z
    parajumpers jacka outlet 8aiznn
    parajumpers jacka outlet 5qlagq
    parajumpers jacka outlet aswwge
    parajumpers dam rea
    parajumpers jacka outlet 9tcstl

    Report
  • Comment Link Leonie Martes, 26 Septiembre 2017 08:39 posted by Leonie

    https://loanswayer.com - need a loan fast
    fair credit loans
    no teletrack payday loans direct lenders

    Report
  • Comment Link viagra samples Martes, 26 Septiembre 2017 08:30 posted by viagra samples

    health care insurance florida http://viagra-coupons.us.com/ viagra samples from pfizer

    Report
  • Comment Link free viagra samples Martes, 26 Septiembre 2017 08:30 posted by free viagra samples

    std signs in women http://viagra-coupons.us.com/ 100 mg viagra lowest price

    Report
  • Comment Link viagra coupon trial Martes, 26 Septiembre 2017 08:29 posted by viagra coupon trial

    company health insurance http://viagra-coupons.us.com/ coupons for viagra

    Report
  • Comment Link Mikeneabe Martes, 26 Septiembre 2017 06:07 posted by Mikeneabe

    write my thesis

    Report

Leave a comment

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

FaLang translation system by Faboba