Introducción a Wollok
Archivos Wollok
Wollok tiene actualmente estos tipos de archivo, cada uno representa un concepto diferente:
- un Programa Wollok (.wpgm)
- un Módulo o Biblioteca Wollok (.wlk)
- un Test Wollok (.wtest)
En las siguientes secciones se explicarán más en detalle.
Programas Wollok
Un programa es una pieza de código ejecutable que consiste en una serie de expresiones que serán evaluadas en forma secuencial. Se puede pensar como el punto de entrada principal (o main) de un programa en otros lenguajes.
Por ejemplo:
Este programa simplemente escribe “Hola mundo” en la consola. Las secciones siguientes explicarán cómo entender cada una de las partes que componen la expresión “console.println(…)”. Por el momento, se puede pensar como una instrucción de alto nivel que está disponible en cualquier programa.
Referencias variables y constantes
En Wollok existen dos tipos de referencias posibles: variables y constantes.
Una variable es una referencia cuyo valor puede cambiar en cualquier momento. Lo que cambia no es el objeto en sí, sino a qué objeto estoy apuntando con mi referencia.
Una constante es una referencia que siempre apunta al mismo objeto, por lo tanto es necesario definir el objeto apuntado en el momento de inicializar la referencia. No es una operación válida tratar de cambiar la referencia para apuntar a otro objeto.
Lo que es constante no es el objeto apuntado (que puede cambiar su estado interno) sino la referencia.
Comentarios
Hay tres tipos de comentarios
- comentarios de una sola línea utilizan la doble barra (//)
- comentarios que ocupan muchas líneas comienzan con /* y terminan con */
- comentarios “wollok-docs” comienzan con /** y terminan con */. Los veremos más adelantes
Ejemplos:
Objetos basicos
Existen objetos básicos que vienen con la distribución de Wollok.
Numeros
Los números entienden una gran variedad de mensajes, como las operaciones matemáticas para sumar, restar, etc. Son objetos inmutables, esto quiere decir que
- su estado interno no cambia
- por ejemplo, la suma de 1 + 2 resulta en un nuevo número que representa al 3.
Además, Wollok soporta operadores sufijos así como también la operación += entre otras tantas variantes, que son shortcuts de otras expresiones.
Booleanos
Hay dos objetos booleanos representados con los literales true y false. Son objetos inmutables, la expresión true || false
devuelve un nuevo objeto true.
Para aquellos que estén acostumbrados a los operadores con símbolos pueden usar esta otra sintaxis:
- and:
a && b
- or:
a || b
- not:
!a
Todas las operaciones de igualdad y comparación retornan objetos booleanos.
Strings
Las cadenas de caracteres se delimitan con una o dos comillas.
También son objetos inmutables (al concatenar “hola” y “mundo” tenemos un nuevo String “holamundo”).
Fechas
Una fecha es un objeto inmutable que representa un día, mes y año (sin horas ni minutos). Se crean de dos maneras posibles:
Algunas operaciones que podemos hacer con las fechas son:
Comparar objetos iguales
Las siguientes expresiones comparan si dos objetos son iguales resultan en valores booleanos:
- == nos dice cuándo dos objetos son iguales
- != nos dice cuándo dos objetos no son iguales
Luego de introducir objetos y clases repasaremos este concepto.
Comparar objetos en general
También tenemos otras expresiones que permiten comparar objetos (por lo general números, pero también Strings y fechas)