2.4 KiB
2.4 KiB
7. 类型与类
类型描述值的结构及其允许的用法。类型标注用于字段、函数参数和返回值,使不同应用部分能够依据同一声明理解数据。
7.1 类型标注
类型标注采用 名称: 类型 的形式:
price: Int
name: String
本文示例使用:
| 类型名 | 表达的值 |
|---|---|
Int |
整数 |
String |
字符串 |
| 用户声明的类名 | 具有该类字段结构的数据 |
数值范围、其他基础类型、可选类型和转换规则尚未构成完整类型体系,范围见规范状态。
7.2 class 声明
代码归属:alice:shop.data。
class Product {
name: String
price: Int
}
该声明定义名为 Product 的数据结构,含有两个字段:name 为字符串,price 为整数。使用 Product 数据的代码依据同一结构读取字段,不需要为前端另写一份对应结构。
类名是标识符。类体由字段声明组成,每个字段写出名称和类型,字段之间不使用逗号或分号。
7.3 类型与值
Product 表示数据的类型;符合 Product 结构的某个值,才包含本次业务数据。
类声明本身不取得某件商品,也不指定数据库、表或连接。通过类型取得数据的用法在数据读取中说明;构造、方法与默认值属于独立的类型规则。
7.4 字段访问
函数体片段;局部名称 product 表示已取得的 Product 值:
let name = product.name
let price = product.price
成员访问使用点号。第一行取得字符串字段,第二行取得整数字段。字段使用的类型由声明决定;读取不存在的字段不是有效的 Product 用法。
成员访问和 let 的表达式规则见下一章。
7.5 类型检查与共享
Preflight 理解类和字段声明,检查字段访问、函数参数与返回值的类型关系。inflight 中取得和使用的数据必须遵守对应结构。
跨 namespace 引用类时,引用的是定义该结构的声明,不改变调用方代码的归属。声明是否可访问取决于可见性和权限规则,见程序结构与导入。
上一章:词法结构 · 下一章:表达式与绑定 · 目录