On branch main
modified: src/ch09.md
This commit is contained in:
16
src/ch09.md
16
src/ch09.md
@@ -79,11 +79,11 @@ Goku's power is: -1431655766
|
||||
представить себе код, вызывающий `remove` без знания того,
|
||||
что ссылка на элемент есть где-то ещё.
|
||||
|
||||
Помимо ошибочного вызова `remove` мы можем починить наш пример
|
||||
и другими способами. Первый способ это использовать метод `get`
|
||||
вместо `getPtr`. Этот метод возвращает копию `User`, а не указатель
|
||||
на экземпляр, который находится в самой таблице. И тогда у нас
|
||||
будет **три** экземпляра `User`:
|
||||
Помимо удаления ошибочного вызова `remove` мы можем починить наш пример и
|
||||
другими способами. Первый способ это использовать метод `get` вместо
|
||||
`getPtr`. Этот метод возвращает копию `User`, а не указатель на
|
||||
экземпляр, который находится в самой таблице. И тогда у нас будет
|
||||
**три** экземпляра `User`:
|
||||
|
||||
* исходный `goku`, созданный в `main`
|
||||
* его копия в `lookup`, которая и владеет этой копией
|
||||
@@ -399,14 +399,14 @@ Zig нет свойств (это такие поля структуры/кла
|
||||
выглядит как обращение к полю, это действительно обращение к полю и,
|
||||
соответственно, если что-то не выглядит как вызов функции, то это не
|
||||
вызов функции. С другой стороны, отсутствие приватных полей, возможно,
|
||||
ошибка дизайна Zig, но мы можем как-то нивелировать, например, используя
|
||||
символ `_` в качестве первого символа имен тех полей, которые
|
||||
ошибка дизайна Zig, но мы можем это как-то нивелировать, например,
|
||||
используя символ `_` в качестве первого символа имен тех полей, которые
|
||||
предназначены только для внутреннего использования.
|
||||
|
||||
Поскольку строки имеют тип `[]8` или `[]const u8`, список из байтов (то
|
||||
есть `ArrayList(u8)`) это подходящий тип для построения конструктора
|
||||
строк по типу `StringBuilder` в .NET или `strings.Builder` в Go.
|
||||
Фактически, вы будете часто использовать в случаях, когда функция
|
||||
Фактически, вы будете часто такое использовать в случаях, когда функция
|
||||
принимает `Writer` и вам на выходе нужна строка. Ранее мы видели пример,
|
||||
в котором для вывода документа JSON на стандартный вывод использовалась
|
||||
`std.json.stringify`. Вот пример использования `ArrayList(u8)` для вывода
|
||||
|
||||
Reference in New Issue
Block a user