Structs en Zig
Un struct de kayak con valores de campo por defecto y un método que se lee natural.
const std = @import("std");
const Kayak = struct {
model: []const u8,
length_ft: u32 = 17, // fields can carry defaults
rudder: bool = false,
fn describe(self: Kayak) void {
std.debug.print("{s}: {d} ft, rudder {}\n", .{
self.model, self.length_ft, self.rudder,
});
}
};
pub fn main() void {
const stock = Kayak{ .model = "Petrel" };
const custom = Kayak{ .model = "Auk", .length_ft = 14, .rudder = true };
stock.describe();
custom.describe();
}
Cómo funciona
length_ft: u32 = 17le da al campo un valor por defecto; construir llena solo.model.- Los métodos son funciones en el espacio del struct que toman
selfprimero. stock.describe()es azúcar paraKayak.describe(stock)— sin this escondido.
Palabras clave y builtins usados aquí
boolconstfnpubstructu32u8void
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 448
- Tokens
- 131
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 112 segundos.
Paso 1 de 3 en Structs y enums; paso 13 de 27 en Fundamentos del lenguaje.