# 基础语法

> 

## 注释

Dujie 当前支持：

- `//` 单行注释
- `///` 文档注释
- `//!` 模块注释

```dj
//! 示例模块

/// 问候函数
func greet(name: string) -> string {
    `hello ${name}`
}
```

## 变量

```dj
let x = 1;
var y = 2;
y = 3;
```

规则：

- `let` 是不可变绑定
- `var` 是可变绑定
- 变量类型一旦确定，后续赋值必须兼容该类型

## 语句与表达式

```dj
let x = 1;

let y = {
    let z = 2;
    z + 1
}
```

规则：

- 赋值、`break`、`continue` 是语句
- `if` 和 block 都可以是表达式
- block 的最后一个不带分号表达式可作为结果值

## 运算符

当前常用运算：

- 算术：`+ - * / %`
- 比较：`== != < <= > >=`
- 逻辑：`! && ||`

规则：

- 算术只对数值类型开放
- 不支持 `int` / `float` 混合运算
- 逻辑运算只接受 `bool`

## 成员访问、下标与调用

```dj
user.name
items[0]
scores["a"]
greet("world")
```

规则：

- `.` 用于字段访问和语言内建方法调用
- `[]` 当前用于 `list` 和 `map`
- 函数调用按参数模型检查
