commit 27353bb936a161e6a09f1424ce38bf84e78e94e4 (tree)
parent 15a6b279571a02b5b31451c0200d09578ea99995
Author: expikr <77922942+expikr@users.noreply.github.com>
Date: Tue, 21 Nov 2023 19:54:13 +0800
langref: emphasize the use of dereferencing string literals
Diffstat:
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/doc/langref.html.in b/doc/langref.html.in
@@ -899,9 +899,18 @@ pub fn main() void {
The type of string literals encodes both the length, and the fact that they are null-terminated,
and thus they can be {#link|coerced|Type Coercion#} to both {#link|Slices#} and
{#link|Null-Terminated Pointers|Sentinel-Terminated Pointers#}.
- Dereferencing string literals converts them to {#link|Arrays#}.
</p>
<p>
+ Dereferencing string literals converts them to {#link|Arrays#}, allowing you to initialize a buffer with the contents of a string literal.
+ </p>
+ {#code_begin|syntax|mutable_string_buffer#}
+test {
+ var buffer = [_]u8{0}**256;
+ const home_dir = "C:/Users/root";
+ buffer[0..home_dir.len].* = home_dir.*;
+}
+ {#code_end#}
+ <p>
The encoding of a string in Zig is de-facto assumed to be UTF-8.
Because Zig source code is {#link|UTF-8 encoded|Source Encoding#}, any non-ASCII bytes appearing within a string literal
in source code carry their UTF-8 meaning into the content of the string in the Zig program;