On branch main
modified: src/ch01.md modified: src/ch08.md
This commit is contained in:
@@ -99,10 +99,10 @@ const MAX_POWER = user.MAX_POWER;
|
||||
Скорее всего, на данный момент у вас больше вопросов, чем ответов. Что
|
||||
такое `user` в приведенном отрывке? Хотя мы ещё не знакомы с ключевым
|
||||
словом `var`, но тем не менее можно спросить, а что, если вместо `const`
|
||||
использовать `var`? Или. возможно, у вас возник вопрос по поводу
|
||||
использовать `var`? Или, возможно, у вас возник вопрос по поводу
|
||||
использования сторонних библиотек. Это всё хорошие вопросы, но чтобы
|
||||
ответить на них, нам нужно глубже изучить Zig, а пока нам придётся
|
||||
обойтись тем, что мы уже знаем, а именно:
|
||||
обойтись тем, что мы уже знаем, а именно:
|
||||
|
||||
* как импортировать стандартную библиотеку (`const std = @import("std");`)
|
||||
* как импортировать свои собственные файлы (`const user = @import(models/user.zig)`)
|
||||
|
||||
15
src/ch08.md
15
src/ch08.md
@@ -11,7 +11,7 @@
|
||||
не менее, сам по себе язык вполне пригоден для достижения аналогичных
|
||||
целей.
|
||||
|
||||
## Простой интерфейс и его реализация
|
||||
## Простой интерфейс и пример его реализации
|
||||
|
||||
Мы сейчас сконструируем некий интерфейс, который будет называться
|
||||
`Writer`. Он будет достаточно прост для понимания сути дела и будет
|
||||
@@ -30,13 +30,14 @@ const Writer = struct {
|
||||
```
|
||||
|
||||
Это вполне себе законченный интерфейс. Это структура, в которой два поля,
|
||||
`ptr` (это указатель на *нечто*, что этот интерфейс реализует,
|
||||
а про `*anyopaque` мы вскоре поговорим) и `writeAllFn`, это
|
||||
указатель на функцию, которая реализует данный метод.
|
||||
`ptr` (это указатель на *нечто*, что этот интерфейс реализует, а про
|
||||
`*anyopaque` мы вскоре поговорим) и `writeAllFn`, это указатель на
|
||||
функцию, которая реализует данный метод.
|
||||
|
||||
Заметим, что функция `writeAll`, входящая в состав нашей структуры-интерфейса,
|
||||
просто вызывает реализацию по указателю `writeAllFn`, передавая ей,
|
||||
наряду с другими параметрами, указатель `ptr`.
|
||||
Заметим, что функция `writeAll`, входящая в состав нашей
|
||||
структуры-интерфейса, просто вызывает реализацию по указателю
|
||||
`writeAllFn`, передавая ей, наряду с другими параметрами, указатель
|
||||
`ptr`.
|
||||
|
||||
Теперь скелет того самого нечто, что реализует данный интерфейс:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user