mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
langref: add documentation for unions with inferred tag and explicit tag values
This commit is contained in:
parent
c315f2bc2e
commit
cf90a5e451
@ -2469,6 +2469,13 @@ or
|
||||
</p>
|
||||
{#code|test_union_method.zig#}
|
||||
|
||||
<p>
|
||||
Unions with inferred enum tag types can also assign ordinal values to their inferred tag.
|
||||
This requires the tag to specify an explicit integer type.
|
||||
{#link|@intFromEnum#} can be used to access the ordinal value corresponding to the active field.
|
||||
</p>
|
||||
{#code|test_tagged_union_with_tag_values.zig#}
|
||||
|
||||
<p>
|
||||
{#link|@tagName#} can be used to return a {#link|comptime#}
|
||||
{#syntax#}[:0]const u8{#endsyntax#} value representing the field name:
|
||||
|
||||
17
doc/langref/test_tagged_union_with_tag_values.zig
Normal file
17
doc/langref/test_tagged_union_with_tag_values.zig
Normal file
@ -0,0 +1,17 @@
|
||||
const std = @import("std");
|
||||
const expect = std.testing.expect;
|
||||
|
||||
const Tagged = union(enum(u32)) {
|
||||
int: i64 = 123,
|
||||
boolean: bool = 67,
|
||||
};
|
||||
|
||||
test "tag values" {
|
||||
const int: Tagged = .{ .int = -40 };
|
||||
try expect(@intFromEnum(int) == 123);
|
||||
|
||||
const boolean: Tagged = .{ .boolean = false };
|
||||
try expect(@intFromEnum(boolean) == 67);
|
||||
}
|
||||
|
||||
// test
|
||||
Loading…
x
Reference in New Issue
Block a user