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

Commit ea5c649

Browse files
committed
changelog
1 parent da971d7 commit ea5c649

File tree

1 file changed

+59
-1
lines changed

1 file changed

+59
-1
lines changed

CHANGELOG.md

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,63 @@
11
# CodeNothing 更新日志
22

3+
## [v0.5.2] - 2025-07-28
4+
### 🎯 重大新功能:函数指针完整实现 (Function Pointers)
5+
6+
#### 🚀 核心特性
7+
- **完整的函数指针语法支持**
8+
- 函数指针类型声明:`mathFunc : *fn(int, int) : int;`
9+
- 函数指针赋值:`mathFunc = addNumbers;`
10+
- 函数指针调用:`result = mathFunc(10, 5);`
11+
- 可选函数指针:`optFunc : ?*fn(int) : string;`
12+
13+
- **函数指针方法**
14+
- `toString()` - 获取函数指针的字符串表示
15+
- `getName()` - 获取函数名
16+
- `getParamCount()` - 获取参数数量
17+
- `getReturnType()` - 获取返回类型
18+
- `isNull()` - 检查是否为空
19+
- `isLambda()` - 检查是否为Lambda函数
20+
21+
- **高阶函数支持**
22+
- 函数指针作为参数传递
23+
- 函数指针作为返回值
24+
- 运行时函数选择和调用
25+
26+
#### 技术实现
27+
- **AST扩展**: 新增 `FunctionPointer` 类型和相关表达式
28+
- **类型系统**: 完整的函数指针类型检查和匹配
29+
- **语法解析**: 支持 `*fn(参数类型...) : 返回类型` 语法
30+
- **运行时调用**: 真实的函数指针调用机制
31+
- **内存管理**: 函数指针的创建、赋值和销毁
32+
33+
#### 示例代码
34+
```codenothing
35+
// 函数定义
36+
fn add(a : int, b : int) : int {
37+
return a + b;
38+
};
39+
40+
fn multiply(a : int, b : int) : int {
41+
return a * b;
42+
};
43+
44+
// 函数指针使用
45+
mathFunc : *fn(int, int) : int = add;
46+
result1 : int = mathFunc(10, 5); // 15
47+
48+
mathFunc = multiply;
49+
result2 : int = mathFunc(10, 5); // 50
50+
51+
// 高阶函数
52+
fn calculate(a : int, b : int, op : *fn(int, int) : int) : int {
53+
return op(a, b);
54+
};
55+
56+
result3 : int = calculate(10, 5, add); // 15
57+
```
58+
59+
---
60+
361
## [v0.5.1] - 2025-07-28
462
### 🔧 跨平台兼容性修复
563

@@ -140,7 +198,7 @@ derefStatus : Status = *statusPtr;
140198
#### 已知限制
141199
-~~暂不支持指针算术运算(如ptr + 1)~~ **已实现**
142200
-~~暂不支持多级指针(**int)~~ **已实现**
143-
- 🔄 函数指针(概念支持,完整实现计划在v0.5.x)
201+
- ~~函数指针~~ **已在v0.5.2实现**
144202
-~~`(*ptr).method()` 语法暂不支持~~ **已实现**
145203
- 指针递增递减操作符(++ptr, ptr++)计划在v0.5.x实现
146204
- 智能指针(shared_ptr, unique_ptr)计划在v0.6.0实现

0 commit comments

Comments
 (0)