# 类型系统现状

玄铁具备完备的静态类型关键字。目前在编译期与运行时实际发挥作用的核心类型如下:

*   **基本数据类型**:
    *   `整` (Int/i64):整数类型,广泛用于算术运算、索引等。
    *   `小数` (Float/double):浮点数类型。
    *   `字` (String/%XTString):字符串对象引用。
    *   `布尔` (Bool/i1):布尔类型,用于控制流和条件判断。
*   **复合/数据结构类型**:
    *   `数组` (Array/%XTArray):动态数组引用。
    *   `字典` (Dict/%XTDict):哈希表/字典引用。
*   **高级抽象类型**:
    *   `结果` (Result):用于包装操作成功/失败的状态类型(详见 [01_结果类型与错误处理.md](../01_结果类型与错误处理.md))。
    *   `任务` (Task):异步执行的任务句柄。
    *   `字节` (Bytes):用于底层内存、文件或网络 I/O 操作的原始字节流。

## 泛型

玄铁支持在 `型` 和 `函` 中定义泛型参数,使用 `<T>` 语法。泛型参数可以是任意标识符,实例化时传入具体类型(如 `<整>`、`<字>`)。当前编译器采用类型擦除策略,泛型主要提供语法层面的类型参数化能力。

*   **泛型类**:`型 容器<T> { 设 内容: T ... }` — 定义可复用容器类
*   **泛型函数**:`函 交换<T>(a: T, b: T) { 返 [b, a] }` — 定义类型参数化函数
*   **实例化**:`造 容器<整>(123)` / `交换<整>(10, 20)` — 传入具体类型参数
*   **可空修饰**:`?` 紧跟在类型后,修饰紧邻类型——`节点?`(节点可空)、`数组<节点?>`(元素可空)、`数组<节点>?`(数组可空)

> 详细语法说明、教程与示例代码请参阅:[03_泛型编程指南.md](../03_泛型编程指南.md)