On branch main

modified:   src/ch03.md
new file:   src/ch04.md
new file:   src/ch05.md
This commit is contained in:
zed
2023-11-14 17:17:55 +03:00
parent 921c7b3883
commit 547601ee81
3 changed files with 23 additions and 4 deletions

View File

@@ -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`. А это потому,
что она возвращает *тип* и поэтому для её имени используется соглашение для типов,

12
src/ch04.md Normal file
View File

@@ -0,0 +1,12 @@
# Указатели
## Методы
## Немутабельные параметры функций
## Указатель на указатель
## Вложенные указатели
## Рекурсивные структуры

7
src/ch05.md Normal file
View File

@@ -0,0 +1,7 @@
# Стековая память
## Стековые кадры
## "Висячие" указатели (dangling pointers)