Namnlösa structs och tupler
Skapa ad hoc-grupperade värden
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; // 3Utmä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. 📦
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
- Deklarera structs och fält
- Metoder och self-parametern
- Standardvärden för fält
- Namnlösa structs och tupler