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
.