On branch main
modified: src/ch01.md new file: src/ex-ch01-02.zig
This commit is contained in:
45
src/ch01.md
45
src/ch01.md
@@ -103,6 +103,7 @@ const MAX_POWER = user.MAX_POWER;
|
||||
|
||||
## Комментарии
|
||||
|
||||
Следующая строчка в примере это комментарий:
|
||||
```
|
||||
// Если тут убрать слово 'pub', то этот код не откомпилируется
|
||||
```
|
||||
@@ -116,7 +117,7 @@ const MAX_POWER = user.MAX_POWER;
|
||||
|
||||
## Функции
|
||||
|
||||
После комментария в нащем примере идёт строчка
|
||||
После комментария в нашем примере идёт строчка
|
||||
|
||||
```zig
|
||||
pub fn main() void {
|
||||
@@ -131,3 +132,45 @@ pub fn main() void {
|
||||
```
|
||||
/opt/zig-0.11/lib/std/start.zig:559:45: error: root struct of file 'ex-ch01-01' has no member named 'main'
|
||||
```
|
||||
|
||||
Если не принимать во внимание особую роль функции `main` как точки входа,
|
||||
то в остальном это обычная функция, то есть она может принимать параметры
|
||||
и возвращать какое-то значение. В данном случае наша `main` ничего
|
||||
не принимает (что обозначено отсутствием чего бы то ни было внутри круглых
|
||||
скобок) и ничего не возвращает, что обозначено ключевым словом `void`.
|
||||
|
||||
Следующий пример будет чуть-чуть более интересен:
|
||||
|
||||
```zig
|
||||
const std = @import("std");
|
||||
|
||||
pub fn main() void {
|
||||
const sum = add(8999, 2);
|
||||
std.debug.print("8999 + 2 = {d}\n", .{sum});
|
||||
}
|
||||
|
||||
fn add(a: i64, b: i64) i64 {
|
||||
return a + b;
|
||||
}
|
||||
```
|
||||
|
||||
Программисты, пишущие на языках C или C++ наверняка заметят, что Zig
|
||||
не требует объявления/определения функции до её использования, функция
|
||||
`add` вызывается раньше (по тексту), чем встречается её определение.
|
||||
|
||||
Далее отметит тип `i64`. Вот некоторые другие целочисленные/вещественные типы:
|
||||
`u8`, `i8`, `u16`, `i16`, `u32`, `i32`, `u47`, `i47`, `u64`, `i64`, `f32` and `f64`.
|
||||
Наличие в списке `u47` и `i47` это вовсе не проверка того, что Вы ещё не спите -
|
||||
Zig умеет работать с целыми числами произвольного размера (в битах). Возможно,
|
||||
ВЫ не будете использовать такие типы (`u1`, `s9` и т.п.), однако, иногда
|
||||
они удобны или даже необходимы. Тип, который Вы точно будете часто использовать,
|
||||
это `usize` - это целочисленный тип размером с указатель (для данной платформы) и
|
||||
это тип представляет длину/размер чего-либо.
|
||||
|
||||
Давайте
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
11
src/ex-ch01-02.zig
Normal file
11
src/ex-ch01-02.zig
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
const std = @import("std");
|
||||
|
||||
pub fn main() void {
|
||||
const sum = add(8999, 2);
|
||||
std.debug.print("8999 + 2 = {d}\n", .{sum});
|
||||
}
|
||||
|
||||
fn add(a: i64, b: i64) i64 {
|
||||
return a + b;
|
||||
}
|
||||
Reference in New Issue
Block a user