Support var
This commit is contained in:
40
README.md
40
README.md
@@ -7,7 +7,7 @@
|
||||
- **0-based 索引**:数组和列表从 0 开始索引
|
||||
- **明确的类型系统**:区分 list 和 map
|
||||
- **类支持**:支持 class 定义,包含字段和方法
|
||||
- **静态类型声明**:变量需要类型声明(number, string, bool, list, map)
|
||||
- **类型推断**:使用 `var` 关键字自动推断变量类型,也支持显式类型注解
|
||||
- **类 Lua 的 API**:提供简单的嵌入式 API
|
||||
|
||||
## 语法示例
|
||||
@@ -15,15 +15,21 @@
|
||||
### 基本类型
|
||||
|
||||
```javascript
|
||||
number x = 10;
|
||||
string name = "Alice";
|
||||
bool flag = true;
|
||||
// 类型自动推断
|
||||
var x = 10;
|
||||
var name = "Alice";
|
||||
var flag = true;
|
||||
|
||||
// 显式类型声明
|
||||
var y : number = 3.14;
|
||||
var title : string = "Developer";
|
||||
var active : bool = false;
|
||||
```
|
||||
|
||||
### List(0-indexed)
|
||||
|
||||
```javascript
|
||||
list numbers = [10, 20, 30];
|
||||
var numbers = [10, 20, 30]; // 自动推断为 list
|
||||
print(numbers[0]); // 输出: 10
|
||||
numbers[1] = 99;
|
||||
```
|
||||
@@ -31,7 +37,7 @@ numbers[1] = 99;
|
||||
### Map
|
||||
|
||||
```javascript
|
||||
map person = {"name": "Bob", "age": "25"};
|
||||
var person = {"name": "Bob", "age": "25"}; // 自动推断为 map
|
||||
print(person["name"]); // 输出: Bob
|
||||
person["city"] = "New York";
|
||||
```
|
||||
@@ -43,15 +49,15 @@ func add(number a, number b) -> number {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
number result = add(10, 20);
|
||||
var result = add(10, 20); // 自动推断返回值类型
|
||||
```
|
||||
|
||||
### 类
|
||||
|
||||
```javascript
|
||||
class Person {
|
||||
number age;
|
||||
string name;
|
||||
var age : number; // 类成员必须显式声明类型
|
||||
var name : string;
|
||||
|
||||
func sayHi() -> string {
|
||||
print(name, "says: I'm", age, "years old");
|
||||
@@ -59,7 +65,7 @@ class Person {
|
||||
}
|
||||
}
|
||||
|
||||
Person p;
|
||||
var p : Person; // 实例化类
|
||||
p.age = 10;
|
||||
p.name = "Peter";
|
||||
p.sayHi();
|
||||
@@ -76,14 +82,14 @@ if (x > 10) {
|
||||
}
|
||||
|
||||
// while loop
|
||||
number i = 0;
|
||||
var i = 0;
|
||||
while (i < 5) {
|
||||
print("Count:", i);
|
||||
i = i + 1;
|
||||
}
|
||||
|
||||
// for loop
|
||||
for (number j = 0; j < 3; j = j + 1) {
|
||||
for (var j = 0; j < 3; j = j + 1) {
|
||||
print("For loop:", j);
|
||||
}
|
||||
```
|
||||
@@ -117,8 +123,8 @@ int main() {
|
||||
// 执行脚本字符串
|
||||
const char* script = R"(
|
||||
class Person {
|
||||
number age;
|
||||
string name;
|
||||
var age : number;
|
||||
var name : string;
|
||||
|
||||
func sayHi() -> string {
|
||||
print(name, "says: I'm", age, "years old");
|
||||
@@ -126,7 +132,7 @@ int main() {
|
||||
}
|
||||
}
|
||||
|
||||
Person p;
|
||||
var p : Person;
|
||||
p.age = 10;
|
||||
p.name = "Peter";
|
||||
p.sayHi();
|
||||
@@ -203,10 +209,10 @@ camellya/
|
||||
|------|-----|----------|
|
||||
| 索引起始 | 1 | 0 |
|
||||
| Table | 统一的 table | 区分 list 和 map |
|
||||
| 类型 | 动态 | 静态声明 |
|
||||
| 类型 | 动态 | 类型推断 + 可选类型注解 |
|
||||
| 类 | 通过 metatable | 原生支持 |
|
||||
| 语法 | `function` | `func` |
|
||||
| 类型注解 | 无 | 必须声明 |
|
||||
| 变量声明 | 无需声明 | `var` 关键字 |
|
||||
|
||||
## 许可证
|
||||
|
||||
|
||||
Reference in New Issue
Block a user