Zig Academy · Lektion

Namnlösa structs och tupler

Skapa ad hoc-grupperade värden

Lektion 4 av 413 steg

Namnlösa structs och tupler är en gratis lektion i Zig Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Zig Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Zig Academy innehåller totalt 4 lektioner.

Ibland behöver du det bara en gång

Alla grupperingar behöver inte en namngiven typ. Med Zig kan du skriva en anonym struct inline, precis där du använder den.

Utelämna bara namnet

En anonym struct-literal börjar med .{ och listar fälten med namn, utan att någon typ skrivs före den.

const p = .{ .x = 1, .y = 2 };

Använd fälten som vanligt

Du läser fälten på samma sätt som i en namngiven struct, med en punkt. Här är p.x 1 och p.y 2.

const sum = p.x + p.y;

Konvertera implicit till en namngiven typ

En anonym literal kan implicit konverteras till en namngiven struct när måltypen är känd, till exempel för ett returvärde.

fn make() Point {
    return .{ .x = 0, .y = 0 };
}

Tupler har inga fältnamn

Utelämna fältnamnen så får du en tuple: en anonym struct vars fält nås genom sin position.

const pair = .{ 1, 2 };

Indexera en tuple

Du når ett tuple-fält med ett tal, skrivet som ett fältnamn. Därför är pair[0] 1 och pair[1] 2.

const first = pair[0];

Blandade typer går bra

Fälten i en tuple kan ha var och en sin olika typ. En enda literal kan samtidigt innehålla ett int, en bool och en sträng.

const row = .{ 42, true, "hi" };

Tupler har en längd

En tuple är fortfarande en struct och har därför en längd len som kan läsas med tuple.len vid kompilering.

const n = row.len; // 3

Utmärkt för print-argument

std.debug.print tar emot en tuple med värden att formatera. Den .{} som du skickar in är en anonym tuple.

std.debug.print("{} {}\n", .{ 1, 2 });

Iterera över en tuple

Eftersom längden är känd vid kompilering kan du gå igenom en tuples fält med en inline for-loop.

inline for (row) |field| {
    _ = field;
}

Namngivna eller positionsbaserade

Använd en anonym struct när namn gör koden tydligare, och en tuple när en kort, ordnad grupp är allt du behöver.

Snabb kontroll

Vad är skillnaden mellan en tuple och en namngiven anonym struct?

Sammanfattning

Du har mött anonyma structs och tupler: .{ .x = 1 } är inline och namngiven, medan .{ 1, 2 } är en positionsbaserad tuple. 📦

Gratis att börja

Lär dig Zig med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Namnlösa structs och tupler” gratis?

Ja – hela texten till ”Namnlösa structs och tupler” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Zig Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Zig Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Namnlösa structs och tupler”?

Skapa ad hoc-grupperade värden Ni övar på Zig Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Zig Academy?

Du behöver inga förkunskaper. Utbildningen i Zig Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Namnlösa structs och tupler”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Zig Academy-lektionen?

Ja. Varje Zig Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Deklarera structs och fält
  2. Metoder och self-parametern
  3. Standardvärden för fält
  4. Namnlösa structs och tupler
← Tillbaka till Zig Academy