add doc in Anonymous Struct Literal section for special @"0" syntax. (#8630)

This commit is contained in:
Devin Bayer 2021-05-01 01:05:45 +02:00 committed by GitHub
parent 33cb660838
commit 5fcc922ff2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2861,6 +2861,37 @@ fn dump(args: anytype) void {
expect(args.b);
expect(args.s[0] == 'h');
expect(args.s[1] == 'i');
}
{#code_end#}
<p>
Anonymous structs can be created without specifying field names, and are referred to as "tuples".
</p>
<p>
The fields are implicitly named using numbers starting from 0. Because their names are integers,
the {#syntax#}@"0"{#endsyntax#} syntax must be used to access them. Names inside {#syntax#}@""{#endsyntax#} are always recognised as identifiers.
</p>
<p>
Like arrays, tuples have a .len field, can be indexed and work with the ++ and ** operators. They can also be iterated over with {#link|inline for#}.
</p>
{#code_begin|test|tuple#}
const std = @import("std");
const expect = std.testing.expect;
test "tuple" {
const values = .{
@as(u32, 1234),
@as(f64, 12.34),
true,
"hi",
} ++ .{false} ** 2;
expect(values[0] == 1234);
expect(values[4] == false);
inline for (values) |v, i| {
if (i != 2) continue;
expect(v);
}
expect(values.len == 6);
expect(values.@"3"[0] == 'h');
}
{#code_end#}
{#header_close#}