docs: establish Endorphin language documentation baseline

This commit is contained in:
2026-10-07 22:04:09 +08:00
commit a33f80903c
20 changed files with 1344 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
# 4. 程序结构与导入
一个 namespace 的代码视图由导入和声明组成。声明描述类型、逻辑或界面;导入使代码能够引用其他 namespace 中允许使用的声明。
## 4.1 正文结构
本文采用的程序结构为:
```text
零个或多个 use 声明
一个或多个 class、function 或 export scene 声明
```
声明之间不使用逗号或分号。正文不含自身 namespace 声明,其归属来自外部 key 与索引。
这是一份逻辑代码视图的语法结构,不规定独立代码段的存储粒度或物理排列。代码段边界及视图组装规则见[代码存储与视图](../appendices/code-storage-and-views.md)。
## 4.2 use 声明
代码归属:`bob:shop.checkout`。导入声明:
```endorphin
use alice:shop.pricing
```
`use` 后跟一个完整 namespace key。用户名与路径用冒号分隔,路径层级用点号分隔。每个 `use` 引用一个 namespace,不附加类名、函数名或选择性名称列表。
引用整个 namespace 表示指定依赖来源,不表示获得访问权限或自动执行其中的函数。
## 4.3 声明组合
代码归属:`alice:shop.data`。
```endorphin
class Product {
name: String
price: Int
}
function listedPrice(product: Product): Int {
return product.price
}
```
同一视图可以同时包含类和函数,也可以包含场景。类与函数不需要依附 UI 场景;只有业务逻辑的 namespace 无需声明 render。
类、函数和场景的内部结构分别在[类型与类](07-types-and-classes.md)、[函数与调用](09-functions-and-calls.md)和[场景与渲染树](11-scenes-and-render-trees.md)中定义。
## 4.4 名称引用
导入后的声明必须依据可见性和名称查找规则使用。跨 namespace 示例采用“导入的名称可直接查找且没有冲突”的简化条件,用于展示调用含义;这不是对全部声明自动进入作用域的承诺。
名称限定、别名、同名冲突与可见性规则列于[规范状态](../appendices/specification-status.md#引用与代码视图)。官方 UI 组件的来源单独说明,不属于示例用户库。
## 4.5 程序与局部片段
本书区分三类示例:
- 声明示例:展示可以出现在代码视图中的类、函数或场景。
- 函数体片段:展示 let、return 或局部表达式。
- 渲染节点片段:展示 render 内的组件树。
局部片段用于查询语法,不自动成为程序顶层入口。入口选择、空视图与多个场景的选择规则仍列于[规范状态](../appendices/specification-status.md#声明与类型)。
[上一章:namespace](03-namespaces.md) · [下一章:Preflight 与 inflight](05-preflight-and-inflight.md) · [目录](../README.md)