On branch main
modified: src/ch08.md
This commit is contained in:
12
src/ch08.md
12
src/ch08.md
@@ -5,7 +5,7 @@
|
|||||||
до того момента, когда вы осознаете, что в нём нет никакого специального
|
до того момента, когда вы осознаете, что в нём нет никакого специального
|
||||||
синтаксиса для создания интерфейсов (таких, как в Java или Go). Но,
|
синтаксиса для создания интерфейсов (таких, как в Java или Go). Но,
|
||||||
вероятно, вы заметите некоторые вещи, которые номинально не являются
|
вероятно, вы заметите некоторые вещи, которые номинально не являются
|
||||||
таковыми, но очень на них похожи, например, `std.mem.Allocator`. Это
|
интерфейсами, но очень на них похожи, например, `std.mem.Allocator`. Это
|
||||||
потому, что в Zig действительно нет простого механизма для создания
|
потому, что в Zig действительно нет простого механизма для создания
|
||||||
интерфейсов (например, ключевых слов `interface` и `implements`), но, тем
|
интерфейсов (например, ключевых слов `interface` и `implements`), но, тем
|
||||||
не менее, сам по себе язык вполне пригоден для достижения аналогичных
|
не менее, сам по себе язык вполне пригоден для достижения аналогичных
|
||||||
@@ -192,7 +192,7 @@ const File = struct {
|
|||||||
разделе схема не сработает.
|
разделе схема не сработает.
|
||||||
|
|
||||||
Иными словами, мы хотим, чтобы `File.writeAll` был нормальным методом,
|
Иными словами, мы хотим, чтобы `File.writeAll` был нормальным методом,
|
||||||
без необходимости манипуляций с обобщёнными указателями, как то вот так:
|
без необходимости манипуляций с обобщёнными указателями, как-то вот так:
|
||||||
|
|
||||||
```zig
|
```zig
|
||||||
fn writeAll(self: *File, data: []const u8) !void {
|
fn writeAll(self: *File, data: []const u8) !void {
|
||||||
@@ -350,10 +350,10 @@ ptr_info.Pointer.child.writeAll(self, data);
|
|||||||
вызов функции в буквальном смысле, а встроить тело функции в точку вызова.
|
вызов функции в буквальном смысле, а встроить тело функции в точку вызова.
|
||||||
|
|
||||||
Будем надеяться, что эта глава прояснила детали конструирования
|
Будем надеяться, что эта глава прояснила детали конструирования
|
||||||
интерфейсов в Zig, а также, возможно, обрисовала такие возможности
|
интерфейсов в Zig, а также, возможно, обрисовала такие возможности языка,
|
||||||
языка, которые не были никак затронуты в предыдущих главах.
|
которые никак не были затронуты в предыдущих главах. Однако, для простых
|
||||||
Однако, для простых случаев, когда все реализации заведомо известны,
|
случаев, когда все реализации заведомо известны, можно применять другой
|
||||||
можно применять другой подход, о чём мы поговорим в следующем разделе.
|
подход, о чём мы и поговорим в следующем разделе.
|
||||||
|
|
||||||
## Использование маркированных объединений
|
## Использование маркированных объединений
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user