- Not nil注解
Not nil注解
nil 是有效值的所有类型都可以注释为使用 not nil 注释将 nil 排除:
- type
- PObject = ref TObj not nil
- TProc = (proc (x, y: int)) not nil
- proc p(x: PObject) =
- echo "not nil"
- # 编译器捕获:
- p(nil)
- # 和这个:
- var x: PObject
- p(x)
编译器确保每个代码路径初始化包含非空指针的变量。此分析的细节仍在此处指定。