过程类型

过程类型是指向过程的指针。 nil 是过程类型变量允许的值。Nim使用过程类型达到 函数式 编程技术。

Example:

  1. proc echoItem(x: int) = echo x
  2.  
  3. proc forEach(action: proc (x: int)) =
  4. const
  5. data = [2, 3, 5, 7, 11]
  6. for d in items(data):
  7. action(d)
  8.  
  9. forEach(echoItem)

过程类型的一个小问题是调用规约影响类型兼容性:过程类型只兼容如果他们有相同的调用规约。不同的调用规约列在 manual