typestar

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

  1. length_ft: u32 = 17 le da al campo un valor por defecto; construir llena solo .model.
  2. Los métodos son funciones en el espacio del struct que toman self primero.
  3. stock.describe() es azúcar para Kayak.describe(stock) — sin this escondido.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en Structs y enums; paso 13 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →

Structs en otros lenguajes