Skip to content

Commit

Permalink
更新函数章节
Browse files Browse the repository at this point in the history
  • Loading branch information
jinzhongjia committed Sep 18, 2023
1 parent 603a7c5 commit 200288d
Showing 1 changed file with 40 additions and 1 deletion.
41 changes: 40 additions & 1 deletion learn/basic/basic_type/function.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,43 @@ outline: deep

> 函数是编程语言中最为基本的语句。
TODO
zig 的函数明显,你可以一眼就看出来它的组成,我们来用一个简单的函数作为说明:

```zig
pub fn add(a: u8, b: u8) u8 {
return a + b;
}
```

> 如果你有 C++ 的使用经验,一眼就可以看出来各自的作用。
下面来进行说明:

1. `pub` 是访问修饰符,有且只有一个选择,那就是 `pub`,这代表着函数是公共可访问的(其他的文件import该文件后,可以直接使用这个函数)。
2. `fn` 是关键字,代表着我们接下来定义了一个函数。
3. `add` 是标识符,作为函数的名字。
4. `a: u8` 是参数的标识符和类型,这里有两个参数,分别是 `a``b`,它们的类型均是 `u8`
5. `u8` 是函数的返回类型,在 zig 中,一个函数只能返回一个值。

如果没有返回值,请使用 `void`

:::info 🅿️ 提示
你可能注意到了有的函数定义是这样子的:

```zig
fn max(comptime T: type, a: T, b: T) T {
return if (a > b) a else b;
}
```

其中的 `comptime T: type` 你可能很陌生,这是编译期参数,它是用来实现鸭子类型(泛型)的关键语法!

:::

:::details 关于函数命名

这里命名规则没什么强制性的要求,你只需要保证符合变量声明的 [_标识符规范_](/basic/define-variable.html#标识符命名) 即可。

如果你需要一个命名的推荐规则的话,可以参照 zig 源码的命名方式,它使用的是[小驼峰命名法](#)

:::

0 comments on commit 200288d

Please sign in to comment.