• Not nil注解

    Not nil注解

    nil 是有效值的所有类型都可以注释为使用 not nil 注释将 nil 排除:

    1. type
    2. PObject = ref TObj not nil
    3. TProc = (proc (x, y: int)) not nil
    4.  
    5. proc p(x: PObject) =
    6. echo "not nil"
    7.  
    8. # 编译器捕获:
    9. p(nil)
    10.  
    11. # 和这个:
    12. var x: PObject
    13. p(x)

    编译器确保每个代码路径初始化包含非空指针的变量。此分析的细节仍在此处指定。