Page 40 - Revista FIUDE 2018
P. 40

Revista de la Facultad de Ingeniería, Año 5, Número 1de Ingeniería, Año 5, Número 1

                                                 o
                                                 ofrece guías y tutoriales para los que deseen aprender.frece guías y tutoriales para los que deseen aprender.


                  Empresas  como  Pinterest,  Basecamp,  KeepSafe,  Uber,  Attlasian  lo  usan  en  sus mpresas  como  Pinterest,  Basecamp,  KeepSafe,  Uber,  Attlasian  lo  usan  en  sus mpresas  como  Pinterest,  Basecamp,  KeepSafe,  Uber,  Attlasian  lo  usan  en  sus
                  E E
                  productos o sus ambientes. bientes.  Por lo que lo podemos considerar como un lenguaje Por lo que lo podemos considerar como un lenguaje
                  d
                  diseñado para resolver problemas reales.iseñado para resolver problemas reales.
                  Sintaxis

                  Ahora,  para  introducirnos  en  su  sintaxis  vamhora,  para  introducirnos  en  su  sintaxis  vamos  a  hacer  un  programa  sencillo;os  a  hacer  un  programa  sencillo;
                  A
                  nuestro  objetivo  será  obtener  el  estudiante  con  mayor  calificación  de  un  listado. uestro  objetivo  será  obtener  el  estudiante  con  mayor  calificación  de  un  listado. uestro  objetivo  será  obtener  el  estudiante  con  mayor  calificación  de  un  listado.
                  n n
                  L
                  Los datos que manejaremos de los estudiantes serán dos: “os datos que manejaremos de los estudiantes serán dos: “nombre”nombre” y “puntaje”.

                  El resultado lo podemos ver en la figura 3.l resultado lo podemos ver en la figura 3.
                  E














                         Figura 3. Programa en Kotlin para obtener el igura 3. Programa en Kotlin para obtener el estudiante con mayor puntaje de un listadoestudiante con mayor puntaje de un listado
                         F

                  L
                  La salida de este programa es la siguiente:a salida de este programa es la siguiente:
                  El mayor puntaje en Kotlin es de: EstudianteKotlin (nombre=Marco, puntaje=12)l mayor puntaje en Kotlin es de: EstudianteKotlin (nombre=Marco, puntaje=12)l mayor puntaje en Kotlin es de: EstudianteKotlin (nombre=Marco, puntaje=12)
                  E E

                  Ahora describiremos lo que sucede línea por línea:hora describiremos lo que sucede línea por línea:
                  A

                  L1:  Tenemos  la  declaración  del  paquetTenemos  la  declaración  del  paquete  y  aunque  parece  similar  a  Java  podemos e  y  aunque  parece  similar  a  Java  podemos
                  observar que no hay “;” al final, esto es porque en Kotlin el uso de “;” es opcional.bservar que no hay “;” al final, esto es porque en Kotlin el uso de “;” es opcional.bservar que no hay “;” al final, esto es porque en Kotlin el uso de “;” es opcional.
                  o o

                                                                                       8
                  L3-L4: En este bloque tenemos la declaración de una En este bloque tenemos la declaración de una data classdata class , esta es un tipo de
                  clase que podemos usar para almacenar datos. lase que podemos usar para almacenar datos.  La podemos comparar con un Java La podemos comparar con un Java
                  c
                       9
                                   10
                  Bean  o un DTO  donde el compilador genera por nosotros el constructor primario, donde el compilador genera por nosotros el constructor primario, donde el compilador genera por nosotros el constructor primario,
                  métodos hashCode, equalsequals, toString, copy, entre otros.

                  Otro aspecto importante que vemos es la declaración de propiedades con la palabra te que vemos es la declaración de propiedades con la palabra te que vemos es la declaración de propiedades con la palabra
                  reservada  “val”,  con  ella  declaramos  variables  de  solo  lectura  que  pueden  ser ”,  con  ella  declaramos  variables  de  solo  lectura  que  pueden  ser ”,  con  ella  declaramos  variables  de  solo  lectura  que  pueden  ser
                  i i inicializadas  una  sola  vez,  un  efecto  similar  a  lo  que  se  lograría  con  el  uso  de  la nicializadas  una  sola  vez,  un  efecto  similar  a  lo  que  se  lograría  con  el  uso  de  la nicializadas  una  sola  vez,  un  efecto  similar  a  lo  que  se  lograría  con  el  uso  de  la
                  palabra reservada “final” en java” en java, haciéndolas inmutables.

                  Considerar también que el tipo de la variable se define luego de su declaración, esto onsiderar también que el tipo de la variable se define luego de su declaración, esto onsiderar también que el tipo de la variable se define luego de su declaración, esto
                  C C
                  p p
                  porque se le da prioridad al nombre de las variables con el objetivo de mejorar la orque se le da prioridad al nombre de las variables con el objetivo de mejorar la orque se le da prioridad al nombre de las variables con el objetivo de mejorar la
                  legibilidad.

                  Adicionalmente,  vemos  dos  maneras  de  definir  lvemos  dos  maneras  de  definir  los  tipos  de  datosos  tipos  de  datos:  la  primera
                  c
                  colocándolo directamente como es el caso de olocándolo directamente como es el caso de String, y la otra agregándole un “?” al , y la otra agregándole un “?” al


                  8
                   https://kotlinlang.org/docs/reference/datattps://kotlinlang.org/docs/reference/data-classes.html
                   h
                  9
                   http://download.oracle.com/otndocs/jcp/7224ttp://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
                   h
                  10
                   https://martinfowler.com/eaaCatalog/dataTransferObject.htmlttps://martinfowler.com/eaaCatalog/dataTransferObject.html
                   h
                                                                                                           39
   35   36   37   38   39   40   41   42   43   44   45