Skip to content

Commit 4a47237

Browse files
committed
zz
1 parent 4c6259f commit 4a47237

40 files changed

+72
-35
lines changed

SUMMARY.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
- [非空接口](chs/8.接口/8.2.非空接口.md)
4444
- [类型断言总结](chs/8.接口/8.3.类型断言总结.md)
4545
- [接口的其它特性](chs/8.接口/8.4.接口的其它特性.md)
46-
* [与宿主环境交互](chs/9.与宿主环境交互/readme.md)
47-
* [附录](chs/10.附录/readme.md)
48-
- [语言规范](chs/10.附录/a-spec.md)
49-
- [标准库](chs/10.附录/b-std.md)
46+
* [附录](chs/9.附录/readme.md)
47+
- [语言规范](chs/9.附录/a-spec.md)
48+
- [标准库](chs/9.附录/b-std.md)

chs/1.概述/readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@
55
凹语言是国内首个实现在网页内编译、执行全链路的静态类型的编译型通用编程语言;本项目尝试以“开源化社区创建”的方式,解决我国长期缺乏自主通用编程语言的难题,并已取得了显著的成绩,凹语言目前已实现所有语法特性,处于工程试用阶段。
66

77
本手册是讲述凹语言以及配套工具的功能和使用方法。
8+

chs/2.安装及入门/2.1.安装凹语言.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,4 @@ go install wa-lang.org/wa@latest
6666
![](./images/playground-local-01.png)
6767

6868
点击“执行”按钮,可以看到输出结果。
69+

chs/2.安装及入门/2.2.你好凹语言.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,5 @@ $ wa run hello.wa
4848
---
4949

5050
已知问题:
51-
- 在线 Playground 仅支持单文件模式,暂不支持多文件工程模式。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,凹程序开发者无须对此进行特别处理。
51+
- 在线 Playground 仅支持单文件模式,暂不支持多文件工程模式。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,凹程序开发者无须对此进行特别处理。
52+

chs/2.安装及入门/2.3.命令行功能.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ USAGE:
1515
wa [global options] command [command options] [arguments...]
1616
1717
VERSION:
18-
v0.8.1-mvp
18+
v0.22.0
1919
2020
COMMANDS:
2121
play start Wa playground
@@ -181,3 +181,4 @@ yacc 是用于生成语法解析器的程序,是编译器爱好者的工具。
181181
### 2.3.7 打印 Logo
182182

183183
`wa logo` 可以输出一些文本格式的 Logo 图案,读者可以通过 `wa logo -h` 命令帮助自行探索。
184+

chs/2.安装及入门/readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# 2. 安装及入门
22

33
本章讲述了如何安装凹语言程序、最简单的凹语言例子、凹语言IDE插件、凹语言工程目录结构和命令行功能等内容。
4+

chs/3.程序结构/3.1.全局声明.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,5 @@ func getAnswer => i32 {
4242
- `import` :导入声明
4343
- `type` :类型声明
4444

45-
本章接下来的小节将依次简介全局变量声明、函数声明、常量声明、导入声明,类型声明将在第6章单独讲解。
45+
本章接下来的小节将依次简介全局变量声明、函数声明、常量声明、导入声明,类型声明将在第7章单独讲解。
46+

chs/3.程序结构/3.3.函数声明.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,5 @@ a: 2 , b: 4
3737

3838
与全局变量类似,函数可在包内的任何源文件中声明且无需“先声明再使用”。
3939

40-
关于函数的更多信息见第4章。
40+
关于函数的更多信息见第5章。
41+

chs/3.程序结构/3.4.常量声明.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,5 @@ func main {
5555

5656
虽然`K``J`的值均超过了凹中位数最多的整数类型`i64`的表达范围,但是`K/J`的值仍然能被正确打印。这也侧面体现了**数值常量拥有超过变量基本类型的表达范围和精度**
5757

58-
将常量赋值给变量时的相关规则,将在第3章详细讨论。
58+
将常量赋值给变量时的相关规则,将在第4章详细讨论。
59+

chs/3.程序结构/3.5.导入声明.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func getAnswer => i32 {
2323
}
2424
```
2525

26-
程序开始处的 `import "errors"` 声明导入了凹的内置 `errors` 模块,后续的函数中即可使用该模块的公开对象——如例子中的 `errors.New` 函数;`.` 在这里被称为**选择操作符**,它的含义是从左侧的对象(模块)中选择名称与右侧相同的那个对象来使用,该操作符除了用于选择模块公开的函数、全局变量等对象,还用于选择结构体的成员(详见第6章)。
26+
程序开始处的 `import "errors"` 声明导入了凹的内置 `errors` 模块,后续的函数中即可使用该模块的公开对象——如例子中的 `errors.New` 函数;`.` 在这里被称为**选择操作符**,它的含义是从左侧的对象(模块)中选择名称与右侧相同的那个对象来使用,该操作符除了用于选择模块公开的函数、全局变量等对象,还用于选择结构体的成员(详见第7章)。
2727

2828
导入声明应位于源文件内的所有非导入声明之前(既位于头部,紧随文件头注释之后)。若导入多个模块,可以使用括号成组导入,形如:
2929

@@ -63,4 +63,5 @@ func main {
6363

6464
> 与其他声明不同,**导入声明的作用范围是当前源文件**,如果一个模块内的两个源文件使用了同一个第三方模块,那么两个文件内都需要其导入声明。
6565
66-
在凹语言中,每个源文件导入的其他模块都**必须被使用**,也就是说,如果导入了一个模块,但并未使用其任何对象,将被视为语法错误。
66+
在凹语言中,每个源文件导入的其他模块都**必须被使用**,也就是说,如果导入了一个模块,但并未使用其任何对象,将被视为语法错误。
67+

chs/3.程序结构/readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# 3. 程序结构
22

33
凹语言和其他编程语言一样,一个大的程序是由很多小的部分组成的。本章介绍全局变量声明、函数声明、常量声明、导入声明和类型声明。
4+

chs/4.基础数据类型/4.1.局部变量声明.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## 4.1. 局部变量声明
22

3-
第2章介绍了全局变量和常量声明,同样常用的还有局部变量(函数内部定义的变量)声明,它的一般语法为:
3+
第3章介绍了全局变量和常量声明,同样常用的还有局部变量(函数内部定义的变量)声明,它的一般语法为:
44

55
```wa
66
局部变量名: 数据类型 = 初始值
@@ -30,4 +30,5 @@
3030
func genString() => string { return "Hello" }
3131
```
3232

33-
> 凹语言是静态类型语言,合法表达式的类型可以在编译时推定,因此变量的类型是确定的。该 `:=` 语法类似于C++的 `auto` 类型。
33+
> 凹语言是静态类型语言,合法表达式的类型可以在编译时推定,因此变量的类型是确定的。该 `:=` 语法类似于C++的 `auto` 类型。
34+

chs/4.基础数据类型/4.2.整数.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,5 @@
104104
== != < <= > >=
105105
&&
106106
||
107-
```
107+
```
108+

chs/4.基础数据类型/4.3.浮点数.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,5 @@
4646

4747
```wa
4848
f: f64 = 1.5
49-
```
49+
```
50+

chs/4.基础数据类型/4.4.字符串.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,5 @@
6565
---
6666

6767
已知问题列表:
68-
- 使用 `[]` 获取字符串变量的指定字节或子串时,未执行边界检查。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,凹程序开发者无须对此进行特别处理。
68+
- 使用 `[]` 获取字符串变量的指定字节或子串时,未执行边界检查。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,凹程序开发者无须对此进行特别处理。
69+

chs/4.基础数据类型/readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# 4. 基础数据类型
22

33
从底层而言,所有的数据都是由比特组成。对应的凹语言基础数据类型有整型数、浮点数、字符串等。本章介绍基本数据类型以及局部变量的使用。
4+

chs/5.函数/5.1.函数调用.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,5 @@ func main {
6767
}
6868
```
6969

70-
因此我们可以这样来理解:具名返回值实际上是在函数体内定义了一组局部变量,当该函数内的`return` 语句未指明返回值时,自动将这一组局部变量作为返回值填入。
70+
因此我们可以这样来理解:具名返回值实际上是在函数体内定义了一组局部变量,当该函数内的`return` 语句未指明返回值时,自动将这一组局部变量作为返回值填入。
71+

chs/5.函数/5.2.函数值.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,5 @@ func main {
7878

7979
如果被调用的函数值为 `nil`,将触发不可恢复的运行时异常。
8080

81-
函数值与 C 系语言中的函数指针作用类似,可以更灵活的动态调整执行分支。但需要指出的时,相比于直接调用函数,调用函数值有一些额外消耗,性能敏感的场合需要格外注意。
81+
函数值与 C 系语言中的函数指针作用类似,可以更灵活的动态调整执行分支。但需要指出的时,相比于直接调用函数,调用函数值有一些额外消耗,性能敏感的场合需要格外注意。
82+

chs/5.函数/5.3.匿名函数及闭包.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,5 @@ func main {
6767

6868
每次调用 `genFunc` 都将生成一个函数值,这个函数值捕获了局部变量 `n`,函数值每次执行会对捕获的 `n` 执行加1,多次执行 `genFunc` 所获得的函数值,它们捕获的 `n` 是不同的,每执行一次,捕获一个新的实例。
6969

70-
在函数内声明的匿名函数值,携带了本次运行时捕获的局部变量的状态。显然,这种函数值实质上就是闭包。
70+
在函数内声明的匿名函数值,携带了本次运行时捕获的局部变量的状态。显然,这种函数值实质上就是闭包。
71+

chs/5.函数/5.4.条件语句.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ func Compare(x, y: int) => int {
2424
return 0
2525
}
2626
}
27-
```
27+
```
28+

chs/5.函数/5.5.循环语句.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,5 @@
5353
```
5454
0
5555
2
56-
```
56+
```
57+

chs/5.函数/5.6.分支语句.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,5 @@ func f(x: int) {
3333

3434
注意凹语言中分支语句默认跳出:进入某个分支,执行完对应代码块后,将直接跳出分支语句(既隐式`break`),这与 C系语言的默认行为相反。
3535

36-
分支语句另一个特殊的用于类型断言的用法见 7.1节。
36+
分支语句另一个特殊的用于类型断言的用法见 8.1节。
37+

chs/5.函数/readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# 5. 函数
22

33
函数是语句序列的打包,以便于被多次重复使用。本章介绍凹语言函数基本用法,以及函数值、匿名函数和闭包等特性。
4+

chs/6.复合数据类型/6.1.引用.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,5 @@ func main {
4646
---
4747

4848
已知问题列表:
49-
- 目前使用的RC模式无法自动回收孤环,进而导致内存泄漏。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,凹程序开发者无须对此进行特别处理。
49+
- 目前使用的RC模式无法自动回收孤环,进而导致内存泄漏。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,凹程序开发者无须对此进行特别处理。
50+

chs/6.复合数据类型/6.2.数组.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,5 @@
6464

6565
已知问题:
6666
- 通过变量下标访问数组元素时,未执行边界检查。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,凹程序开发者无须对此进行特别处理。
67-
- 在目前版本的实现中,数组被展开为一组线性值,因此数组赋值时,虚拟寄存器和指令数与数组长度成整倍数关系,若长度过大,目标代码的体积会急剧膨胀。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,在现阶段,程序开发者应关注:除全局变量外,尽可能不要使用长度大于8的数组。
67+
- 在目前版本的实现中,数组被展开为一组线性值,因此数组赋值时,虚拟寄存器和指令数与数组长度成整倍数关系,若长度过大,目标代码的体积会急剧膨胀。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,在现阶段,程序开发者应关注:除全局变量外,尽可能不要使用长度大于8的数组。
68+

chs/6.复合数据类型/6.3.切片.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,4 +128,5 @@ append(sl []T, e T) => []T
128128

129129
已知问题:
130130
- 访问切片元素时,未执行边界检查。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,凹程序开发者无须对此进行特别处理。
131-
- 使用 `[]` 从数组或切片中获取新切片时,未执行边界检查。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,凹程序开发者无须对此进行特别处理。
131+
- 使用 `[]` 从数组或切片中获取新切片时,未执行边界检查。该问题不影响语法兼容性,后续对本问题的修正不影响已有源代码,凹程序开发者无须对此进行特别处理。
132+

chs/7.自定义类型/7.1.结构体.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,5 @@ func main {
7777

7878
在声明结构体字面值时 `{}` 内为成员字面值列表,未列出的成员为 0 值。
7979

80-
如果结构体内的所有成员变量都可比(既该成员类型的变量间可执行 `==` 操作),则该结构体的变量间也可比。在目前已介绍的数据类型中,切片是不可比类型,因此直接或间接包含切片的结构体均不可比。与其他类型的声明类似,结构体可在模块内的任意文件中声明,且无需“先声明再使用”。
80+
如果结构体内的所有成员变量都可比(既该成员类型的变量间可执行 `==` 操作),则该结构体的变量间也可比。在目前已介绍的数据类型中,切片是不可比类型,因此直接或间接包含切片的结构体均不可比。与其他类型的声明类似,结构体可在模块内的任意文件中声明,且无需“先声明再使用”。
81+

chs/7.自定义类型/7.2.方法.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ func main {
4949
如上例所示,如果把全局函数的第一个参数设为自定义类型的引用,那么它的作用和方法几乎是一致的——事实上在凹语言中,从运行时层面看,方法就是首参数为自定义类型引用的函数。既然如此,那么为何要特意引入这一概念呢?原因有两个:
5050

5151
1. 方法有助于聚合对象的功能;
52-
1. `接口` 这一概念直接依赖于方法——类型的方法集合决定了它所实现的接口,第7章将对此进行介绍。
52+
1. `接口` 这一概念直接依赖于方法——类型的方法集合决定了它所实现的接口,第8章将对此进行介绍。
53+
54+
> 需要特别注意的是,按照凹语言语法,使用 `func T.xxx()...` 声明的方法并不属于类型 `T`,而是属于类型 `*T`——既 `T` 的引用;也就是说具名类型本身不能拥有方法,拥有方法的只能是具名类型的引用。
5355
54-
> 需要特别注意的是,按照凹语言语法,使用 `func T.xxx()...` 声明的方法并不属于类型 `T`,而是属于类型 `*T`——既 `T` 的引用;也就是说具名类型本身不能拥有方法,拥有方法的只能是具名类型的引用。

chs/7.自定义类型/7.3.方法值.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,5 @@ func main {
4545

4646
`v.Scale``v.Sub` 是结构体变量 `v` 的方法,当它们被当成值来使用时,被称为**方法值**,比如上例中,它们先后被赋值给了 `op`。方法值可以像普通函数值那样被调用,并且调用时可以影响方法上关联的引用(就如同直接调用原始方法那样),由此可见方法值捕获了原始对象引用,是`带状态`的,在这一点上,方法值与闭包存在相似性。
4747

48-
从上例中还可以得知:函数值变量(比如例中的 `op`),既可以存储函数值,也可以存储方法值,对调用方(caller)来说,二者没有区别。
48+
从上例中还可以得知:函数值变量(比如例中的 `op`),既可以存储函数值,也可以存储方法值,对调用方(caller)来说,二者没有区别。
49+

chs/7.自定义类型/7.4.嵌入结构体.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,5 @@ func main {
9696
}
9797
```
9898

99-
为了实现对象复用,凹语言没有采用继承的设计(这与C++不同),而是使用了组合的设计。嵌入结构体就是**组合**的具体表现,嵌入结构体复用了被嵌入类型的内存布局和方法集,与接口(将在第7章介绍)一起,构成了凹语言对象抽象、复用的基础。
99+
为了实现对象复用,凹语言没有采用继承的设计(这与C++不同),而是使用了组合的设计。嵌入结构体就是**组合**的具体表现,嵌入结构体复用了被嵌入类型的内存布局和方法集,与接口(将在第8章介绍)一起,构成了凹语言对象抽象、复用的基础。
100+

chs/7.自定义类型/7.5.匿名结构体.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,5 @@ func main {
4141

4242
具名类型位于模块的名字空间下,但匿名结构体因为没有名字,其定义实际上位于全局空间,因此如果两个匿名结构体变量的内存布局完全一致(既成员个数、对应成员名、对应成员类型均一致),它们将被认为属于同一个类型,可以互相赋值(例如上例中的全局变量 `G` 和 局部变量 `k`),哪怕这两个变量位于不同模块中,该特性依然成立;这引出了匿名结构体的另一个使用场景:跨模块传递参数。
4343

44-
由于匿名结构体没有类型名,因此按照语法规则,无法为其添加方法。
44+
由于匿名结构体没有类型名,因此按照语法规则,无法为其添加方法。
45+

chs/7.自定义类型/readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# 7. 自定义类型
22

33
自定义类型包括结构体、以及围绕结构体方法产生的接口。
4+

chs/8.接口/8.1.空接口-万能封包器.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,4 +108,5 @@ func printConcrete(iface: interface{}) {
108108

109109
任何类型的值都可以赋予空接口,它在凹语言中实际起到了万能封包器的作用,经常用于在函数间传递类型会动态变化的值。
110110

111-
> 本文中“**空接口**”指 `interface{}`,既方法集为空的接口类型,下一节中的“**非空接口**”指方法集不为空的接口类型;当我们要描述值为0的接口值时,将使用“**0值接口**”,或“**nil接口**”,请注意区分。
111+
> 本文中“**空接口**”指 `interface{}`,既方法集为空的接口类型,下一节中的“**非空接口**”指方法集不为空的接口类型;当我们要描述值为0的接口值时,将使用“**0值接口**”,或“**nil接口**”,请注意区分。
112+

chs/8.接口/8.2.非空接口.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,5 @@ func main {
6565

6666
由此可见,同一个接口值 `p` 中封装了不同的对象时,使用同样的方法使用它,其行为也会随着对象类型的不同发生变化。
6767

68-
由于具名类型本身无法拥有方法,而只有其引用才能拥有方法(参考6.2节),因此上例中,`v1` 不能赋值给 `p`,而只有其引用 `&v1` 方可。如果试图将 `v1` 赋值给 `p`,将会引发编译错误。
68+
由于具名类型本身无法拥有方法,而只有其引用才能拥有方法(参考7.2节),因此上例中,`v1` 不能赋值给 `p`,而只有其引用 `&v1` 方可。如果试图将 `v1` 赋值给 `p`,将会引发编译错误。
69+

chs/8.接口/8.3.类型断言总结.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
## 8.3. 类型断言总结
22

3-
7.1节介绍了如何从类型为 `interface{}` 的接口值中通过类型断言获取它所包含的具体值,该用法对于非空接口值依然成立,例如:
3+
8.1节介绍了如何从类型为 `interface{}` 的接口值中通过类型断言获取它所包含的具体值,该用法对于非空接口值依然成立,例如:
4+
45
```wa
56
// 版权 @2023 凹语言 作者。保留所有权利。
67
@@ -82,3 +83,4 @@ func main {
8283
```
8384

8485
该模式取消了操作成功标志的返回值 `ok`,只返回被断言类型的值。如果类型断言失败,则会触发运行时异常,建议仅在完全确认断言不会失败的情况下才使用该模式。
86+

chs/8.接口/8.4.接口的其它特性.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
## 8.4. 接口的其它特性
22

33
在声明接口时,接口的方法集可以包含另一个接口,例如:
4+
45
```wa
56
type I1 interface {
67
f1()
@@ -22,4 +23,5 @@ type I2 interface {
2223

2324
接口值是可比的,只有同时满足以下条件,两个非nil接口值 `i1``i2` 才相等(既表达式 `i1==i2``true`):
2425
- `i1` 的具体类型与 `i2` 的具体类型相同,且该类型可比
25-
- `i1` 的具体值与 `i2` 的具体值相等
26+
- `i1` 的具体值与 `i2` 的具体值相等
27+
File renamed without changes.

chs/10.附录/b-std.md renamed to chs/9.附录/b-std.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,4 @@ const WAOS = "..."
106106
### B.6 syscall - 系统调用包
107107

108108
凹语言不同目标平台提供的系统调用。通常是 runtime 或其他包封装 syscall 包的函数。
109+
File renamed without changes.

0 commit comments

Comments
 (0)