Norm 0.6
Norm 0.6 完成一等函数、闭包、返回类型省略规则与统一源码格式化。本页定义 0.6 的实现契约;具体语法与类型规则由语言规范定义。
函数与闭包
Function<R(P...)>是完整的函数类型,函数值可以存入变量、字段和集合,也可以作为参数和返回值;- callable 参数声明
R transform(T value)与对应的Function<R(T)> transform使用同一类型模型; - Lambda 支持上下文参数推断、显式参数类型、末尾表达式结果与泛型 expected type 传播;
- 闭包可以捕获外层局部、参数和
this,局部与参数遵循 effectively-final 规则; - 顶层函数引用与
receiver::method绑定方法引用可以按期望函数类型解析重载; - Binder、Core IR、验证器和 Truffle 后端共享闭包目标、捕获布局和调用表示,内容身份边界升级为 Core Schema V3 与 Language Semantics V3。
函数声明
- 顶层函数省略返回类型时固定为
Void; - class 方法省略返回类型时返回同一接收者,支持连续调用;
- interface 方法继续显式声明返回类型;
- 顶层声明与成员默认公开,源码格式化使用省略
public的规范形式。
工具链
- 编译器提供基于语法树的统一格式化器,使用两空格缩进、100 列布局和稳定的尾换行;
- Language Server 提供标准
textDocument/formatting,无效源码保持原文; - VS Code 扩展默认使用 Norm 格式化器并在保存时格式化;
- 补全、签名帮助、悬停和符号展示理解函数类型、Lambda、方法引用与省略返回类型;
- 标准库、示例与验收程序统一使用规范格式。
升级说明
省略返回类型的 class 方法现在具有 owner 类型并在正常结束时返回 this。需要无结果语义的方法应显式声明 Void。顶层函数省略返回类型仍表示 Void。
完整规则见函数与调用、函数高级规则、函数声明语法和VS Code 支持。