From 626cfbed736d4c6c10e45c2c827b0271daaf5d08 Mon Sep 17 00:00:00 2001 From: zed Date: Sun, 19 Nov 2023 10:50:08 +0300 Subject: [PATCH] On branch main modified: src/ch01.md modified: src/ch08.md modified: src/ch09.md --- src/ch01.md | 12 ++++++------ src/ch08.md | 8 ++++++-- src/ch09.md | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/ch01.md b/src/ch01.md index ccbe198..09588cd 100644 --- a/src/ch01.md +++ b/src/ch01.md @@ -202,7 +202,7 @@ fn add(a: i64, b: i64) i64 { ```zig pub const User = struct { power: u64, - name: []const u8, + name: []const u8, }; ``` @@ -347,11 +347,11 @@ pub fn init(name: []const u8, power: u64) User { ## Массивы и срезы -Мы могли бы обойти молчанием последнюю строчку нашего примера (`name: -[]const u8`), но, поскольку этот пример содержит аж 2 строковые константы -(`"Пётр"` и `"{s} обладает силой {d}\n"`), то наверняка Вы любопытствуете -по поводу строк в Zig. Чтобы лучше понимать строки, нужно сначала -ознакомиться с массивами и срезами. +Мы могли бы обойти молчанием последнюю нашего примера (`name: []const +u8`), но, поскольку пример содержит две строковые константы (`"Пётр"` и +`"{s} обладает силой {d}\n"`), то наверняка Вы любопытствуете по поводу +строк в Zig. Чтобы лучше понимать строки, нужно сначала ознакомиться с +массивами и срезами. Массивы имеют фиксированный размер, их длина (количество элементов) известна во время компиляции. Длина является составляющей частью типа, то diff --git a/src/ch08.md b/src/ch08.md index 1e40fd7..960d2b3 100644 --- a/src/ch08.md +++ b/src/ch08.md @@ -418,5 +418,9 @@ switch (self) { } ``` -Такой оборот `else` автоматически разворачивается, -то есть для каждого варианта получается правильный тип `impl`. +Такой оборот `else` автоматически разворачивается, то есть для каждого +варианта получается правильный тип `impl`. Здесь показана ещё одна вещь - +интерфейсы могут привносить свою логику, в данном примере учитывается +пустая реализация (`.null`). Сколько логики Вы добавляете в сам +интерфейс, это Ваше дело, но по большей части интерфейсы должны в +основном выполнять диспетчеризацию. diff --git a/src/ch09.md b/src/ch09.md index 9157d5f..de7bb01 100644 --- a/src/ch09.md +++ b/src/ch09.md @@ -1,3 +1,21 @@ # Программируем на языке Zig +## Снова висячие указатели + +## Владение + +## `ArrayList` + +## `anytype` + +## `@typeOf` + +## Система сборки + +## Сторонние зависимости + + + + +