Skip to content
This repository has been archived by the owner on Aug 24, 2024. It is now read-only.

Commit

Permalink
fix: add missing u47 and const c = b[2...] (#17)
Browse files Browse the repository at this point in the history
  • Loading branch information
chenrui333 authored Dec 29, 2023
1 parent 669dfec commit ae5bcfe
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions 02-language-overview-part1.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,11 +119,11 @@ fn add(a: i64, b: i64) i64 {
}
```

C 和 C++ 程序员会注意到 Zig 不需要提前声明, `add` 在定义之前就被调用了
C 和 C++ 程序员会注意到 Zig 不需要提前声明,即在定义之前就可以调用 `add` 函数

接下来要注意的是 `i64` 类型:64 位有符号整数。其他一些数字类型有: `u8``i8``u16``i16``u32``i32``i47``u64``i64``f32``f64`
接下来要注意的是 `i64` 类型:64 位有符号整数。其他一些数字类型有: `u8``i8``u16``i16``u32``i32``u47``i47``u64``i64``f32``f64`

包含 `u47``i47` 并不是一个确保您仍然清醒的测试; Zig 支持任意位宽度的整数。虽然你可能不会经常使用这些,但它们可以派上用场。经常使用的一种类型是 `usize`,它是一个无符号指针大小的整数,通常是表示某事物长度、大小的类型。
包含 `u47``i47` 并不是为了测试你是否还清醒; Zig 支持任意位宽度的整数。虽然你可能不会经常使用这些,但它们可以派上用场。经常使用的一种类型是 `usize`,它是一个无符号指针大小的整数,通常是表示某事物长度、大小的类型。

> 除了 `f32``f64` 之外,Zig 还支持 `f16``f80``f128` 浮点类型。
Expand Down Expand Up @@ -298,7 +298,7 @@ var end: usize = 4;
const b = a[1..end];
```

`b` 现在是一个切片了。具体来说,它的类型是 `[]const i32`。你可以看到,切片的长度并不是类型的一部分,因为长度是运行时属性,而类型总是在编译时就完全已知。在创建切片时,我们可以省略上界,创建一个到要切分的对象(数组或切片)末尾的切片,例如 `const c = b[2...]`
`b` 现在是一个切片了。具体来说,它的类型是 `[]const i32`。你可以看到,切片的长度并不是类型的一部分,因为长度是运行时属性,而类型总是在编译时就完全已知。在创建切片时,我们可以省略上界,创建一个到要切分的对象(数组或切片)末尾的切片,例如 `const c = b[2..]`

> 如果我们将 `end` 声明为 `const` 那么它将成为编译时已知值,这将导致 `b` 是一个指向数组的指针,而不是切片。我觉得这有点令人困惑,但它并不是经常出现的东西,而且也不太难掌握。我很想在这一点上跳过它,但无法找到一种诚实的方法来避免这个细节。
Expand Down

0 comments on commit ae5bcfe

Please sign in to comment.