Skip to content

Commit

Permalink
增加少量反射内容
Browse files Browse the repository at this point in the history
  • Loading branch information
jinzhongjia committed Dec 27, 2023
1 parent 5204161 commit 7a6d9ca
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion learn/more/reflection.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ outline: deep

## 观察已有类型

zig 提供了不少函数来获取已有类型的信息,如:`@TypeOf``@typeName``@typeInfo``@hasDecl``@hasField`
zig 提供了不少函数来获取已有类型的信息,如:`@TypeOf``@typeName``@typeInfo``@hasDecl``@hasField``@field``@fieldParentPtr``@call`

### `@TypeOf`

Expand Down Expand Up @@ -120,4 +120,26 @@ pub fn main() !void {

:::

TODO:增加新的示例,仅仅一个示例不足以说明 `@typeInfo` 的使用!

### `@hasDecl`

### `@hasField`

### `@field`

### `@fieldParentPtr`

### `@call`

## 构建新的类型

zig 除了获取类型信息外,还提供了在编译期构建全新类型的能力,允许我们通过非常规的方式来声明一个类型。

构建新类型的能力主要依赖于 `@Type`

### `@Type`

该函数实际上就是 `@typeInfo` 的反函数,它将类型信息具体化为一个类型。

TODO

0 comments on commit 7a6d9ca

Please sign in to comment.