On branch main

modified:   src/ch01.md
modified:   src/ch08.md
modified:   src/ch09.md
This commit is contained in:
zed
2023-11-19 10:50:08 +03:00
parent d773a99ac5
commit 626cfbed73
3 changed files with 30 additions and 8 deletions

View File

@@ -202,7 +202,7 @@ fn add(a: i64, b: i64) i64 {
```zig ```zig
pub const User = struct { pub const User = struct {
power: u64, power: u64,
name: []const u8, name: []const u8,
}; };
``` ```
@@ -347,11 +347,11 @@ pub fn init(name: []const u8, power: u64) User {
## Массивы и срезы ## Массивы и срезы
Мы могли бы обойти молчанием последнюю строчку нашего примера (`name: Мы могли бы обойти молчанием последнюю нашего примера (`name: []const
[]const u8`), но, поскольку этот пример содержит аж 2 строковые константы u8`), но, поскольку пример содержит две строковые константы (`"Пётр"` и
(`"Пётр"` и `"{s} обладает силой {d}\n"`), то наверняка Вы любопытствуете `"{s} обладает силой {d}\n"`), то наверняка Вы любопытствуете по поводу
по поводу строк в Zig. Чтобы лучше понимать строки, нужно сначала строк в Zig. Чтобы лучше понимать строки, нужно сначала ознакомиться с
ознакомиться с массивами и срезами. массивами и срезами.
Массивы имеют фиксированный размер, их длина (количество элементов) Массивы имеют фиксированный размер, их длина (количество элементов)
известна во время компиляции. Длина является составляющей частью типа, то известна во время компиляции. Длина является составляющей частью типа, то

View File

@@ -418,5 +418,9 @@ switch (self) {
} }
``` ```
Такой оборот `else` автоматически разворачивается, Такой оборот `else` автоматически разворачивается, то есть для каждого
то есть для каждого варианта получается правильный тип `impl`. варианта получается правильный тип `impl`. Здесь показана ещё одна вещь -
интерфейсы могут привносить свою логику, в данном примере учитывается
пустая реализация (`.null`). Сколько логики Вы добавляете в сам
интерфейс, это Ваше дело, но по большей части интерфейсы должны в
основном выполнять диспетчеризацию.

View File

@@ -1,3 +1,21 @@
# Программируем на языке Zig # Программируем на языке Zig
## Снова висячие указатели
## Владение
## `ArrayList`
## `anytype`
## `@typeOf`
## Система сборки
## Сторонние зависимости