On branch main
modified: src/ch02.md modified: src/ch04.md modified: src/ch05.md
This commit is contained in:
@@ -461,10 +461,10 @@ if (home) |h| {
|
||||
по умолчанию или для возврата из функции, например:
|
||||
|
||||
```zig
|
||||
// если h == null, будет "unknown"
|
||||
const h = home orelse "unknown"
|
||||
// or maybe
|
||||
|
||||
// exit our function
|
||||
// выход из функции если h == null
|
||||
const h = home orelse return;
|
||||
```
|
||||
|
||||
@@ -659,7 +659,7 @@ try action(req, res);
|
||||
так:
|
||||
|
||||
```zig
|
||||
// load the last saved game
|
||||
// загружаем последнюю сохранённую игру
|
||||
pub fn loadLast() !?Save {
|
||||
// TODO
|
||||
return null;
|
||||
@@ -675,7 +675,6 @@ pub fn loadLast() !?Save {
|
||||
const std = @import("std");
|
||||
|
||||
pub fn main() void {
|
||||
// This is the line you want to focus on
|
||||
const save = (try Save.loadLast()) orelse Save.blank();
|
||||
std.debug.print("{any}\n", .{save});
|
||||
}
|
||||
|
||||
10
src/ch04.md
10
src/ch04.md
@@ -26,7 +26,7 @@ pub fn main() void {
|
||||
.power = 100,
|
||||
};
|
||||
|
||||
// this line has been added
|
||||
// добавленная строчка
|
||||
levelUp(user);
|
||||
std.debug.print("Пользователь {d} обладает силой {d}\n", .{user.id, user.power});
|
||||
}
|
||||
@@ -103,7 +103,7 @@ user -> ------------ (id)
|
||||
объявим так называемую упакованную структуру (`packed struct`). Тем не
|
||||
менее, наша визуализация переменной `user` вполне разумна и полезна.
|
||||
|
||||
Вот несколько иная визуализация, тут включены адреса ячеек памяти:
|
||||
Вот несколько иная визуализация, тут добавлены адреса ячеек памяти:
|
||||
|
||||
```
|
||||
user -> ------------ (id: 1043368d0)
|
||||
@@ -178,7 +178,7 @@ pub fn main() void {
|
||||
.power = 100,
|
||||
};
|
||||
|
||||
// added this
|
||||
// добавили это
|
||||
std.debug.print("main: {*}\n", .{&user});
|
||||
|
||||
levelUp(user);
|
||||
@@ -186,7 +186,7 @@ pub fn main() void {
|
||||
}
|
||||
|
||||
fn levelUp(user: User) void {
|
||||
// add this
|
||||
// добавили это
|
||||
std.debug.print("levelUp: {*}\n", .{&user});
|
||||
var u = user;
|
||||
u.power += 1;
|
||||
@@ -337,7 +337,7 @@ user -> ------------- (*User) |
|
||||
-------------
|
||||
```
|
||||
|
||||
Внутри функции `levelUP` `user` это указатель на структуру `User`.
|
||||
Внутри функции `levelUp` `user` это указатель на структуру `User`.
|
||||
Значение этого параметра это адрес переменной `main.user`. Но это не
|
||||
просто адрес, это ещё и тип (`*User`). Не имеет значения, говорим ли об
|
||||
указателях или нет - переменные связывают информацию о типе с адресом.
|
||||
|
||||
22
src/ch05.md
22
src/ch05.md
@@ -1,17 +1,17 @@
|
||||
|
||||
# Стековая память
|
||||
|
||||
Рассмотрение указателей в предыдущей ознакомило нас с взаимосвязью между
|
||||
переменными, данными и памятью. Но нам ещё нужно поговорить о том, как
|
||||
происходит управление ланными и памятью. Для коротко-живущих и простых
|
||||
скриптов это, как правило, не имеет особого значения. В наше время, имея
|
||||
ноутбук, оснащённый 32-мя гигабайтами оперативной памяти, вы можете
|
||||
запустить свою программу, которая, делая какую-то работу (например,
|
||||
прочитать файл), может запросто использовать несколько сотен мегабайт
|
||||
памяти, сделать что-то потрясающее и далее выйти. По выходу операционная
|
||||
система освобождает все ресурсы (память, в частности), которые были
|
||||
исопльзованы программойЮ пока она выполнялась. Освобожденная память затем
|
||||
может быть отдана в пользование другим программам.
|
||||
Рассмотрение указателей в предыдущей главе ознакомило нас с взаимосвязью
|
||||
между переменными, данными и памятью. Но нам ещё нужно поговорить о том,
|
||||
как происходит управление ланными и памятью. Для коротко-живущих и
|
||||
простых скриптов это, как правило, не имеет особого значения. В наше
|
||||
время, имея ноутбук, оснащённый 32-мя гигабайтами оперативной памяти, вы
|
||||
можете запустить свою программу, которая, делая какую-то работу
|
||||
(например, прочитать файл), может запросто использовать несколько сотен
|
||||
мегабайт памяти, сделать что-то потрясающее и далее выйти. По выходу
|
||||
операционная система освобождает все ресурсы (память, в частности),
|
||||
которые были исопльзованы программойЮ пока она выполнялась. Освобожденная
|
||||
память затем может быть отдана в пользование другим программам.
|
||||
|
||||
Однако, для программ, которые работают днями, месяцами и даже годами,
|
||||
память становится ограниченным и весьма ценным ресурсом, который нужен
|
||||
|
||||
Reference in New Issue
Block a user