On branch main
modified: src/ch01.md modified: src/ch08.md modified: src/ch09.md
This commit is contained in:
12
src/ch01.md
12
src/ch01.md
@@ -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. Чтобы лучше понимать строки, нужно сначала ознакомиться с
|
||||||
ознакомиться с массивами и срезами.
|
массивами и срезами.
|
||||||
|
|
||||||
Массивы имеют фиксированный размер, их длина (количество элементов)
|
Массивы имеют фиксированный размер, их длина (количество элементов)
|
||||||
известна во время компиляции. Длина является составляющей частью типа, то
|
известна во время компиляции. Длина является составляющей частью типа, то
|
||||||
|
|||||||
@@ -418,5 +418,9 @@ switch (self) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Такой оборот `else` автоматически разворачивается,
|
Такой оборот `else` автоматически разворачивается, то есть для каждого
|
||||||
то есть для каждого варианта получается правильный тип `impl`.
|
варианта получается правильный тип `impl`. Здесь показана ещё одна вещь -
|
||||||
|
интерфейсы могут привносить свою логику, в данном примере учитывается
|
||||||
|
пустая реализация (`.null`). Сколько логики Вы добавляете в сам
|
||||||
|
интерфейс, это Ваше дело, но по большей части интерфейсы должны в
|
||||||
|
основном выполнять диспетчеризацию.
|
||||||
|
|||||||
18
src/ch09.md
18
src/ch09.md
@@ -1,3 +1,21 @@
|
|||||||
|
|
||||||
# Программируем на языке Zig
|
# Программируем на языке Zig
|
||||||
|
|
||||||
|
## Снова висячие указатели
|
||||||
|
|
||||||
|
## Владение
|
||||||
|
|
||||||
|
## `ArrayList`
|
||||||
|
|
||||||
|
## `anytype`
|
||||||
|
|
||||||
|
## `@typeOf`
|
||||||
|
|
||||||
|
## Система сборки
|
||||||
|
|
||||||
|
## Сторонние зависимости
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user