Skip to content
This repository was archived by the owner on Aug 18, 2025. It is now read-only.

Commit bc8d100

Browse files
committed
更新CHANGELOG.md以反映v0.5.3版本的函数指针和Lambda函数完整实现
1 parent 6a4b0a1 commit bc8d100

File tree

1 file changed

+32
-14
lines changed

1 file changed

+32
-14
lines changed

CHANGELOG.md

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# CodeNothing 更新日志
22

3-
## [v0.5.2] - 2025-07-28
4-
### 🎯 重大新功能:函数指针完整实现 (Function Pointers)
3+
## [v0.5.3] - 2025-07-29
4+
### 🎯 重大新功能:函数指针和Lambda函数完整实现 (Function Pointers & Lambda Functions)
55

66
#### 🚀 核心特性
77
- **完整的函数指针语法支持**
@@ -10,6 +10,12 @@
1010
- 函数指针调用:`result = mathFunc(10, 5);`
1111
- 可选函数指针:`optFunc : ?*fn(int) : string;`
1212

13+
- **Lambda函数完整实现**
14+
- Lambda表达式语法:`(x => x + 1)`, `((a, b) => a + b)`
15+
- 带类型注解的Lambda:`((a : int, b : int) => a + b)`
16+
- Lambda函数指针创建和调用
17+
- Lambda函数参数绑定和执行
18+
1319
- **函数指针方法**
1420
- `toString()` - 获取函数指针的字符串表示
1521
- `getName()` - 获取函数名
@@ -22,13 +28,15 @@
2228
- 函数指针作为参数传递
2329
- 函数指针作为返回值
2430
- 运行时函数选择和调用
31+
- 复杂函数指针调用(支持局部变量、条件语句等)
32+
- 递归函数指针调用
2533

2634
#### 技术实现
27-
- **AST扩展**: 新增 `FunctionPointer` 类型和相关表达式
35+
- **AST扩展**: 新增 `FunctionPointer` `LambdaFunctionPointer` 类型
2836
- **类型系统**: 完整的函数指针类型检查和匹配
29-
- **语法解析**: 支持 `*fn(参数类型...) : 返回类型` 语法
30-
- **运行时调用**: 真实的函数指针调用机制
31-
- **内存管理**: 函数指针的创建、赋值和销毁
37+
- **语法解析**: 支持 `*fn(参数类型...) : 返回类型` 和Lambda语法
38+
- **运行时调用**: 真实的函数指针和Lambda调用机制
39+
- **环境管理**: 正确的作用域和局部变量处理
3240

3341
#### 示例代码
3442
```codenothing
@@ -37,27 +45,37 @@ fn add(a : int, b : int) : int {
3745
return a + b;
3846
};
3947
40-
fn multiply(a : int, b : int) : int {
41-
return a * b;
42-
};
43-
4448
// 函数指针使用
4549
mathFunc : *fn(int, int) : int = add;
4650
result1 : int = mathFunc(10, 5); // 15
4751
48-
mathFunc = multiply;
49-
result2 : int = mathFunc(10, 5); // 50
52+
// Lambda函数
53+
square : *fn(int) : int = (x => x * x);
54+
result2 : int = square(7); // 49
55+
56+
// 多参数Lambda
57+
power : *fn(int, int) : int = ((base, exp) => base * base * exp);
58+
result3 : int = power(3, 2); // 18
5059
5160
// 高阶函数
5261
fn calculate(a : int, b : int, op : *fn(int, int) : int) : int {
5362
return op(a, b);
5463
};
5564
56-
result3 : int = calculate(10, 5, add); // 15
65+
result4 : int = calculate(10, 5, add); // 15
66+
result5 : int = calculate(10, 5, ((a, b) => a - b)); // 5
5767
```
5868

5969
---
6070

71+
## [v0.5.2] - 2025-07-28
72+
### 🔧 函数指针基础框架
73+
- 函数指针数据结构设计
74+
- 基础语法解析支持
75+
- 函数指针方法框架
76+
77+
---
78+
6179
## [v0.5.1] - 2025-07-28
6280
### 🔧 跨平台兼容性修复
6381

@@ -198,7 +216,7 @@ derefStatus : Status = *statusPtr;
198216
#### 已知限制
199217
-~~暂不支持指针算术运算(如ptr + 1)~~ **已实现**
200218
-~~暂不支持多级指针(**int)~~ **已实现**
201-
-~~函数指针~~ **已在v0.5.2实现**
219+
-~~函数指针和Lambda函数~~ **已在v0.5.3完整实现**
202220
-~~`(*ptr).method()` 语法暂不支持~~ **已实现**
203221
- 指针递增递减操作符(++ptr, ptr++)计划在v0.5.x实现
204222
- 智能指针(shared_ptr, unique_ptr)计划在v0.6.0实现

0 commit comments

Comments
 (0)