From 547601ee81cb15a6a7e3e1dd6aedfc02484bffae Mon Sep 17 00:00:00 2001 From: zed Date: Tue, 14 Nov 2023 17:17:55 +0300 Subject: [PATCH] On branch main modified: src/ch03.md new file: src/ch04.md new file: src/ch05.md --- src/ch03.md | 8 ++++---- src/ch04.md | 12 ++++++++++++ src/ch05.md | 7 +++++++ 3 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 src/ch04.md create mode 100644 src/ch05.md diff --git a/src/ch03.md b/src/ch03.md index 85a120e..773dfce 100644 --- a/src/ch03.md +++ b/src/ch03.md @@ -69,7 +69,7 @@ fn add(a: i64, b: i64) i64 { ## Маскирование/затенение имён (shadowing) -Zig не ползволяет одному идентификатору "перекрывать" собой другой, +Zig не позволяет одному идентификатору "перекрывать" собой другой, используя то же самое имя. Следующий код для чтения из сокета не является корректным: @@ -90,7 +90,7 @@ fn read(stream: std.net.Stream) ![]const u8 { За исключением правил, диктуемых компилятором, Вы, разумеется, вольны использовать такие соглашения об именах, какие Вам больше -нравятся. Однако, соверешенно не вредно понимать собственные +нравятся. Однако, совершенно не вредно понимать собственные соглашения Zig, поскольку стандартная библиотека, которой Вы, безуловно, будете пользоваться, придерживается этих соглашений. @@ -99,7 +99,7 @@ fn read(stream: std.net.Stream) ![]const u8 { а не символ табуляции и это гораздо удобней, чем 4 раза нажимать пробел. Имена функций пишутся в `camelCase`, имена переменных - в `snake_case`. -Типы пишутся в `PascalCase`. Есть одно интересное перечение этих 3-х правил. +Типы пишутся в `PascalCase`. Есть одно интересное пересечение этих 3-х правил. Переменные, которые хранят тип или функции, которые возвращают тип, так же, как и сами типы, пишутся в `PascalCase`. Мы уже видели нечто подобное: @@ -108,7 +108,7 @@ fn read(stream: std.net.Stream) ![]const u8 { std.debug.print("{any}\n", .{@TypeOf(.{.year = 2023, .month = 8})}); ``` -Мы уже видели некторые другие встроенные функции, как то `@import`, `@rem` и `@intCast`. +Мы уже видели некоторые другие встроенные функции, как то `@import`, `@rem` и `@intCast`. Поскольку это функции, их имена записаны в `camelCase`. Однако, `@TypeOf` это тоже (встроенная) функция, но она почему то написана в `PascalCase`. А это потому, что она возвращает *тип* и поэтому для её имени используется соглашение для типов, diff --git a/src/ch04.md b/src/ch04.md new file mode 100644 index 0000000..72b945e --- /dev/null +++ b/src/ch04.md @@ -0,0 +1,12 @@ + +# Указатели + +## Методы + +## Немутабельные параметры функций + +## Указатель на указатель + +## Вложенные указатели + +## Рекурсивные структуры diff --git a/src/ch05.md b/src/ch05.md new file mode 100644 index 0000000..d1b8e2b --- /dev/null +++ b/src/ch05.md @@ -0,0 +1,7 @@ + +# Стековая память + +## Стековые кадры + +## "Висячие" указатели (dangling pointers) +