Continuando con la serie de ZigLang ahora veremos los tipos de datos.
Tipos de datos primitivos
Tenemos los primitivos (tipos básicos):
- i8.
- u8.
- i16.
- u16.
- i32.
- u32.
- i64.
- u64.
- isize.
- usize.
- f16.
- f32.
- f64.
- bool.
- type.
- anyerror.
- entre otros más.
Ejemplo 1. Este programa viene en la documentación oficial.
string_literals.zig
const print = @import("std").debug.print; const mem = @import("std").mem; // will be used to compare bytes pub fn main() void { const bytes = "hello"; print("{}\n", .{@TypeOf(bytes)}); // *const [5:0]u8 print("{d}\n", .{bytes.len}); // 5 print("{c}\n", .{bytes[1]}); // 'e' print("{d}\n", .{bytes[5]}); // 0 print("{}\n", .{'e' == '\x65'}); // true print("{d}\n", .{'\u{1f4a9}'}); // 128169 print("{d}\n", .{''}); // 128175 print("{u}\n", .{'⚡'}); print("{}\n", .{mem.eql(u8, "hello", "h\x65llo")}); // true print("{}\n", .{mem.eql(u8, "", "\xf0\x9f\x92\xaf")}); // also true const invalid_utf8 = "\xff\xfe"; // non-UTF-8 strings are possible with \xNN notation. print("0x{x}\n", .{invalid_utf8[1]}); // indexing them returns individual bytes... print("0x{x}\n", .{""[1]}); // ...as does indexing part-way through non-ASCII characters }
Salida:
$ zig build-exe string_literals.zig $ ./string_literals *const [5:0]u8 5 e 0 true 128169 128175 ⚡ true true 0xfe 0x9f
Ejemplo 2. Mostrar algunas variables primitivas.
variables.zig
const std = @import("std"); pub fn main() void { std.debug.print("\t [ Variables en ZigLang ]\n", .{}); var entero: i32 = undefined; var flotante:f128 = undefined; var verdadero:bool = undefined; entero = 325; flotante = 12.65; verdadero = true; const cadena = "Murcielago"; std.debug.print("Número entero: {d}\n", .{entero}); std.debug.print("Número flotante: {d}\n", .{flotante}); std.debug.print("Cadena: {c}\n", .{cadena}); std.debug.print("Booleano: {}\n", .{verdadero}); }
El programa anterior:
- Declara tres variables de tipo: i32 (entero), f128 (flotante) y bool (booleano).
- Además de una constante de tipo cadena de caracteres.
- Al final muestra en pantalla el valor de cada una.
Compilamos y ejecutamos:
$ zig build-exe variables.zig $ ./variables
Salida:
[ Variables en ZigLang ] Número entero: 325 Número flotante: 12.65 Cadena: { M, u, r, c, i, e, l, a, g, o } Booleano: true
Si quieres saber más, aquí está un link hacia la documentación oficial:
https://ziglang.org/documentation/master/Continuaremos más adelante.
Enlaces:
https://ziglang.org/
Comentarios
Publicar un comentario