Default Field Values
Initialize fields without repetition.
Default Field Values is a free Zig Academy lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Zig Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Repeating Yourself
If most instances start the same way, retyping every field is tedious. Zig lets a field carry a default value built into the type.
Give a Field a Default
Add = value after the field type. Any instance that omits that field gets the default automatically.
const Config = struct {
retries: u8 = 3,
};Omit It on Creation
Now you can build a value without mentioning the defaulted field, and it still gets 3.
const c = Config{};Override When You Want
The default is only a starting point. Set the field explicitly in the initializer to use a different value.
const c = Config{ .retries = 5 };Mix Defaults and Required
A struct can blend both. Fields with no default are required; defaulted ones may be skipped.
const User = struct {
name: []const u8,
active: bool = true,
};Empty Initializer
If every field has a default, you can construct with a bare .{} and let all defaults apply at once.
const Settings = struct {
volume: u8 = 50,
muted: bool = false,
};
const s = Settings{};Defaults Are Compile-Time
A default must be a value Zig can compute at compile time, like a literal or a comptime expression.
const Limits = struct {
max: usize = 1024,
};Any Type Can Default
Defaults work for any field type: numbers, bools, slices, even nested structs with their own defaults.
const Box = struct {
size: Settings = Settings{},
};Default to null
An optional field often defaults to null, a clean way to say it starts empty until you fill it in.
const Node = struct {
next: ?*Node = null,
};Cleaner, Safer Code
Defaults shrink your call sites and document intended starting state, so readers see the normal value right in the type.
Defaults Are Per Instance
Each new instance gets its own fresh copy of the default. They never share state between values.
Quick Check
What happens to a defaulted field you leave out?
Recap
You learned default field values: write = value after a field, then omit it to use the default or set it to override. ⚙️
Frequently asked questions
Is the “Default Field Values” lesson free?
Yes — the full text of “Default Field Values” is free to read here on the web, and the Zig Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Zig Academy course, upgrade to CoddyKit PRO.
What will I learn in “Default Field Values”?
Initialize fields without repetition. You practise Zig Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Zig Academy?
No prior experience is required. Zig Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Default Field Values” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Zig Academy lesson?
Yes. Every Zig Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.