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...@@ -1935,6 +1935,7 @@ or
1935 <li>{#syntax#}*T{#endsyntax#} - single-item pointer to exactly one item.1935 <li>{#syntax#}*T{#endsyntax#} - single-item pointer to exactly one item.
1936 <ul>1936 <ul>
1937 <li>Supports deref syntax: {#syntax#}ptr.*{#endsyntax#}</li>1937 <li>Supports deref syntax: {#syntax#}ptr.*{#endsyntax#}</li>
1938 <li>Supports slice syntax: {#syntax#}ptr[0..1]{#endsyntax#}</li>
1938 <li>Supports pointer subtraction: {#syntax#}ptr - ptr{#endsyntax#}</li>1939 <li>Supports pointer subtraction: {#syntax#}ptr - ptr{#endsyntax#}</li>
1939 </ul>1940 </ul>
1940 </li>1941 </li>
doc/langref/test_single_item_pointer.zig+14
...@@ -32,4 +32,18 @@ test "pointer array access" {...@@ -32,4 +32,18 @@ test "pointer array access" {
32 try expect(array[2] == 4);32 try expect(array[2] == 4);
33}33}
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
35// test49// test