匿名结构体与元组
创建临时的分组值。
匿名结构体与元组 是 CoddyKit 上的免费 Zig Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Zig Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Zig Academy 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
Sometimes You Need It Once
Not every grouping deserves a named type. Zig lets you write an anonymous struct inline, right where you use it.
Just Drop the Name
An anonymous struct literal starts with .{ and lists fields by name, with no type written before it.
const p = .{ .x = 1, .y = 2 };Use the Fields Normally
You read fields the same way as a named struct, with a dot. Here p.x is 1 and p.y is 2.
const sum = p.x + p.y;Coerce to a Named Type
An anonymous literal can coerce into a named struct when the target type is known, like a return value.
fn make() Point {
return .{ .x = 0, .y = 0 };
}Tuples Have No Field Names
Leave out the field names and you get a tuple: an anonymous struct whose fields are accessed by position.
const pair = .{ 1, 2 };Index a Tuple
Reach a tuple field by number, written like a field name. So pair[0] is 1 and pair[1] is 2.
const first = pair[0];Mixed Types Are Fine
Tuple fields can each be a different type. One literal can hold an int, a bool, and a string at once.
const row = .{ 42, true, "hi" };Tuples Have a Length
A tuple is still a struct, so it has a compile-time len you can read with tuple.len.
const n = row.len; // 3Great for print Arguments
std.debug.print takes a tuple of values to format. That .{} you pass is an anonymous tuple.
std.debug.print("{} {}\n", .{ 1, 2 });Loop Over a Tuple
Because the length is known at compile time, you can walk a tuple's fields with an inline for loop.
inline for (row) |field| {
_ = field;
}Named or Positional
Reach for an anonymous struct when names add clarity, and a tuple when a short, ordered group is all you need.
Quick Check
What is the difference between a tuple and a named anonymous struct?
Recap
You met anonymous structs and tuples: .{ .x = 1 } is inline and named, while .{ 1, 2 } is a positional tuple. 📦
常见问题解答
「匿名结构体与元组」课时是免费的吗?
是的 — 「匿名结构体与元组」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Zig Academy 课程的其余内容,请升级到 CoddyKit PRO。 Zig Academy 课程共包含 4 节课。
「匿名结构体与元组」这节课中我会学到什么?
创建临时的分组值。 你通过在浏览器中直接运行的动手代码来练习 Zig Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Zig Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Zig Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「匿名结构体与元组」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Zig Academy 课中编写并运行代码吗?
能。每节 Zig Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 声明结构体与字段
- 方法与 self 参数
- 字段默认值
- 匿名结构体与元组