docs: establish Endorphin language documentation baseline
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user