JARU es un lenguaje dinámicamente tipado, los tipos de datos (valores) de las variables y objetos no se especifican explícitamente en tiempo de compilación, sino que se determinan en tiempo de ejecución. Esto significa que una misma variable puede contener diferentes tipos de datos a lo largo del programa, sin tener que especificar previamente el tipo de dato que almacenará.
En JARU todos los valores son de primera clase, esto significa que todos ellos pueden ser asignados a variables, pasados como argumentos a funciones o retornados por ellas. Los valores no solo se pueden usar para representar datos, sino que también pueden ser manipulados y utilizados para construir nuevos valores o programas complejos.
Tipo | Ejemplo | Descripción |
---|---|---|
bool | Tipo de dato para almacenar valores booleanos (verdadero o falso). | true, false |
integer | Almacena números enteros. | 123 |
float | Almacena números decimales. | 0.456 |
string | Tipo de dato para almacenar cadenas de texto.Los string pueden estar entre comillas simples o dobles. | ‘Goku’, “Krilin” |
list | Tipo de dato para almacenar una colección ordenada de elementos. | [1, 2, 3, 4]; |
map | Tipo de dato para almacenar una colección de pares clave-valor. | {“clave1”: “valor1”, “clave2”: “valor2”}; |
array | Tipo de dato para almacenar una colección ordenada de elementos con un índice numérico. | {1, 2, 3, 4}; |
Bool
En JARU, el tipo de dato “booleano” se utiliza para representar valores lógicos, es decir, verdadero o falso. Una variable declarada como “booleano” puede almacenar solo dos valores posibles: true o false.
Para declarar una variable como tipo booleano, se utiliza la palabra clave var seguida del nombre de la variable y el valor true o false.
Ejemplo:
var esMayorDeEdad = true;
var tienePermiso = false;
En JARU, las variables booleanas son utilizadas en operaciones de comparación y lógicas, como por ejemplo en estructuras de control if-else, while, for, etc.
Ejemplo:
var edad = 18;
if(edad >= 18) then
print("Es mayor de edad");
else
print("Es menor de edad");
end;
En el ejemplo anterior, la variable “edad” se compara con el valor 18, si es mayor o igual a 18, se imprime “Es mayor de edad” de lo contrario se imprime “Es menor de edad”
Integer
El tipo de datos integer (entero) se utiliza para almacenar valores numéricos enteros sin decimales. El tamaño de bits utilizado para representar los enteros en JARU es de 32 bits pudiendo almacenar valores enteros en el rango de -2,147,483,648 a 2,147,483,647. El tipo de datos integer se utiliza para almacenar valores numéricos enteros sin decimales y se pueden utilizar en cálculos matemáticos, en la asignación de variables, en la comparación de valores y en la toma de decisiones mediante estructuras de control.
var x = 10
En este caso, el tipo de la variable “x” se determina automáticamente como un entero, debido a que se le asignó un valor numérico entero.
Float
En JARU, el tipo de datos float se utiliza para almacenar valores numéricos en coma flotante de precisión doble, con un tamaño de 64 bits en la memoria de la computadora. El tipo de datos float en JARU tiene un tamaño de 64 bits en la memoria de la computadora y utiliza 52 bits para almacenar la mantisa (parte fraccionaria) del número y 11 bits para almacenar el exponente. Esto permite representar números con una precisión de hasta 15 dígitos significativos. Los datos float se pueden utilizar en cálculos matemáticos, en la asignación de variables, en la comparación de valores y en la toma de decisiones mediante estructuras de control.
var x = 3.14
En este caso, el tipo de la variable “x” se determina automáticamente como un float, debido a que se le asignó un valor numérico decimal.
String
El tipo de dato string se utiliza para representar cadenas de caracteres o texto. Una variable declarada como string puede almacenar cualquier secuencia de caracteres, como palabras, frases o párrafos.
Para declarar una variable como tipo string, se utiliza la palabra clave var seguida del nombre de la variable y el valor de la cadena de caracteres entre comillas dobles o comillas simples.
Ejemplo:
var nombre = "Juan";
var frase = 'Hola mundo!';
var parrafo = "Este es un párrafo de ejemplo con varias líneas de texto.";
En JARU, las cadenas de caracteres son objetos, lo que significa que tienen métodos y propiedades que pueden utilizarse para trabajar con ellas. Por ejemplo, se puede utilizar el método len para determinar la longitud de una cadena de caracteres o el método substring para extraer una parte específica de una cadena.
Ejemplo:
// Obtener la longitud de una cadena de caracteres
var nombre = "Juan";
println(nombre.len); // Imprime 4
// Obtener una parte específica de una cadena de caracteres
var frase = "Hola mundo!";
println(frase.substring(5, 10)); // Imprime "mundo"
List
En JARU, el tipo de dato lista se utiliza para almacenar una colección de valores del mismo tipo o de diferentes tipos.
Para declarar una lista, se utiliza la palabra clave var seguida del nombre de la variable y los valores que se quieren almacenar entre corchetes [ ].
Ejemplo:
var nombres = ["Juan", "Pedro", "Miguel"];
var edades = [25, 30, 35];
var mixta = ["Juan", 25, true];
En el primer ejemplo se crea una lista de nombres, en el segundo una lista de edades y en el tercer ejemplo una lista mixta.
Las listas en JARU son objetos mutables, lo que significa que se pueden modificar después de haber sido creadas. Se pueden acceder a los elementos de una lista utilizando el índice del elemento dentro de los corchetes [ ].
Ejemplo:
print(nombres[0]); //imprime "Juan"
nombres[1] = "Andres"; //cambia el valor en la posicion 1 por "Andres"
En el ejemplo anterior se accede al primer elemento de la lista nombres y se cambia el valor en la posicion 1 por Andres.
En JARU, las listas tienen varios métodos disponibles para realizar operaciones comunes sobre ellas que veremos mas adelante. Un ejemplo de métodos de lista es .push(valor) que agrega un elemento al final de la lista.
var nombres = ["Juan", "Pedro"];
nombres.push("Miguel"); //la lista nombres ahora contiene ["Juan", "Pedro", "Miguel"]
Map
En JARU, los mapas son un tipo de datos que permite almacenar pares clave-valor. Se pueden usar para almacenar información como un diccionario o un objeto en otros lenguajes de programación.
Para crear un mapa, se puede usar la palabra clave map seguida de una lista de pares clave-valor dentro de llaves {}.
Por ejemplo:
var edades = {
"Juan": 25,
"Pedro": 30,
"Miguel": 35
};
También se pueden crear mapas vacíos y agregar pares clave-valor después:
var edades = {};
edades["Juan"] = 25;
edades["Pedro"] = 30;
edades["Miguel"] = 35;
Para acceder a un valor en un mapa, se puede usar la notación de corchetes [] con la clave correspondiente:
var edadDeJuan = edades["Juan"]; //edadDeJuan contiene 25
Algunos métodos comunes para trabajar con mapas incluyen:
- .size(): Devuelve la cantidad de pares clave-valor en el mapa.
- .keys(): Devuelve una lista con todas las claves en el mapa.
- .values(): Devuelve una lista con todos los valores en el mapa.
- .has(clave): Devuelve true si el mapa tiene un par clave-valor con la clave especificada, de lo contrario devuelve false.
- .delete(clave): Elimina el par clave-valor con la clave especificada del mapa.
Array
Los arrays son un tipo de datos que permite almacenar una secuencia ordenada de elementos. Se pueden usar para almacenar una lista de números, cadenas de texto, objetos, etc. En JARU, los arrays son de tamaño fijo, una vez que se crea un array con un tamaño específico, no se puede ampliar ni reducir.
Para crear un array, poner una lista de elementos separados por comas dentro de llaves {}.
Por ejemplo:
var numeros = {1, 2, 3, 4, 5};
var nombres = {"Juan", "Pedro", "Miguel"};
También se pueden crear arrays vacíos y asignar los valores después:
var nombres[10];
nombres[8] = "Esto es una demo";
Para acceder a un elemento en un array, se puede usar la notación de corchetes [] con el índice correspondiente (empezando en 0 para el primer elemento):
var numeros = {1, 2, 3, 4, 5};
var segundoNumero = numeros[1]; // segundoNumero contiene 2
Algunos métodos comunes para trabajar con arrays incluyen:
.size(): Devuelve la cantidad de elementos en el array.numdim(): Devuelve el numero de dimensiones del array.dim(): Devuelve una lista con ellas dimensiones del array.fill(valor): Inicia todos los elementos del array con el valor enviado.
En JARU, se pueden declarar arrays multidimensionales utilizando la sintaxis var arrayNombre[10][20]. Esto crea un array con 10 elementos, donde cada elemento es a su vez un array con 20 elementos. Para acceder a un elemento específico del array multidimensional, se utiliza la notación de corchetes anidados, por ejemplo arrayNombre[i][j], donde i es el índice del elemento en el primer nivel del array y j es el índice del elemento en el segundo nivel del array. Además, se pueden utilizar métodos estándar para trabajar con arrays multidimensionales en JARU, como por ejemplo, para recorrer los elementos o para buscar un elemento específico.
Ejemplo declaracion de un array multidimensional en JARU:
var array={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
// Acceder a un elemento específico en la matriz
print(array[1][1]); // Output: 5
// Recorrer los elementos de la matriz
for(var i=0; i<3; i++)
for(var j=0; j<3; j++)
print(array[i][j]);
end
end
En este ejemplo se declara una matriz de 3×3 llamada matriz y se asigna valores a sus elementos. Luego se accede a un elemento específico de la matriz y se recorren todos los elementos de la matriz utilizando dos bucles anidados. No te preocupes si no ves claro este ejemplo, se vera mas adelante con ejemplos practicos.
Ejemplos de declaraciones de arrays con diferentes números de dimensiones en JARU:
- Array unidimensional:
var array1D = {1, 2, 3, 4, 5};
- Array bidimensional:
var array2D = {1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
- Array tridimensional:
var array3D = {{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, {{10, 11, 12}, {13, 14, 15}, {16, 17, 18}}};
- Array cuatridimensional:
var array4D = {{{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, {{10, 11, 12}, {13, 14, 15}, {16, 17, 18}}}, {{{19, 20, 21}, {22, 23, 24}, {25, 26, 27}}, {{28, 29, 30}, {31, 32, 33}, {34, 35, 36}}}};