authorgravatar for 43345275+ssmid@users.noreply.github.comssmid <43345275+ssmid@users.noreply.github.com> 2024-07-17 16:06:34+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-07-21 00:32:50-07:00
log9232425b8f68e84d192c9c77ca0c3b7b2547d195
tree456f970c828b2c24cfd83d6412babb743761115f
parent01dc0d5a7222470939d3eb96b1d14c27b70161ad

single pointer slice syntax added


2 files changed, 15 insertions(+), 0 deletions(-)

doc/langref.html.in+1
......@@ -1935,6 +1935,7 @@ or
19351935 <li>{#syntax#}*T{#endsyntax#} - single-item pointer to exactly one item.
19361936 <ul>
19371937 <li>Supports deref syntax: {#syntax#}ptr.*{#endsyntax#}</li>
1938 <li>Supports slice syntax: {#syntax#}ptr[0..1]{#endsyntax#}</li>
19381939 <li>Supports pointer subtraction: {#syntax#}ptr - ptr{#endsyntax#}</li>
19391940 </ul>
19401941 </li>
doc/langref/test_single_item_pointer.zig+14
......@@ -32,4 +32,18 @@ test "pointer array access" {
3232 try expect(array[2] == 4);
3333}
3434
35test "slice syntax" {
36 // Get a pointer to a variable:
37 var x: i32 = 1234;
38 const x_ptr = &x;
39
40 // Convert to array pointer using slice syntax:
41 const x_array_ptr = x_ptr[0..1];
42 try expect(@TypeOf(x_array_ptr) == *[1]i32);
43
44 // Coerce to many-item pointer:
45 const x_many_ptr: [*]i32 = x_array_ptr;
46 try expect(x_many_ptr[0] == 1234);
47}
48
3549// test