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: PObjectp(x) 编译器确保每个代码路径初始化包含非空指针的变量。此分析的细节仍在此处指定。