Zig es un lenguaje de programación que se enfoca en la seguridad, la velocidad y la claridad. Uno de los aspectos más importantes de Zig es su sistema de tipos, que es fundamental para escribir código seguro y mantenible. El sistema de tipos de Zig es estático, lo que significa que el tipo de cada variable se conoce en tiempo de compilación, no en tiempo de ejecución. Esto ayuda a evitar errores de tipo en tiempo de ejecución y garantiza que el código sea más seguro y eficiente.
Tipos básicos en Zig
Los tipos básicos en Zig incluyen números enteros, números en punto flotante, Booleanos, etc. A continuación, se presentan algunos de los tipos básicos más comunes:
- Integers (i8, i16, i32, i64, etc.): representan números enteros con signo.
- Unsigned integers (u8, u16, u32, u64, etc.): representan números enteros sin signo.
- Floats (f16, f32, f64): representan números en punto flotante.
- Booleanos (bool): representan valores verdaderos o falsos.
Declaración de variables y tipos
En Zig, se puede declarar una variable con un tipo específico utilizando la palabra clave var o const. Por ejemplo:
var x: i32 = 5; // Declaración de una variable con tipo i32 const y: f64 = 3.14; // Declaración de una constante con tipo f64
En el ejemplo anterior, x es una variable de tipo i32 con valor inicial 5, y y es una constante de tipo f64 con valor 3.14.
Inferencia de tipos
Zig también admite la inferencia de tipos, lo que significa que el compilador puede deducir el tipo de una variable sin necesidad de especificarlo explícitamente. Por ejemplo:
var x = 5; // El tipo de x se infiere como i32 const y = 3.14; // El tipo de y se infiere como f64
En el ejemplo anterior, el tipo de x se infiere como i32 porque el valor 5 es un entero, y el tipo de y se infiere como f64 porque el valor 3.14 es un número en punto flotante.
Ejemplo de uso de tipos en una función
A continuación, se muestra un ejemplo de cómo se pueden utilizar los tipos en una función en Zig:
fn suma(a: i32, b: i32) i32 {
return a + b;
}
pub fn main() {
var resultado = suma(2, 3);
std.debug.print("El resultado es: {d}\n", .{resultado});
}
En el ejemplo anterior, se define una función suma que toma dos parámetros de tipo i32 y devuelve un valor de tipo i32. La función main llama a la función suma con dos valores de tipo i32 y almacena el resultado en una variable resultado de tipo i32. Finalmente, se imprime el resultado utilizando la función std.debug.print.

