命名参数

通常一个过程有许多参数而且参数的顺序不清晰。这在构造一个复杂数据类型时尤为突出。因此可以对传递给过程的实参命名,以便于看清哪个实参属于哪个形参:

  1. proc createWindow(x, y, width, height: int; title: string;
  2. show: bool): Window =
  3. ...
  4.  
  5. var w = createWindow(show = true, title = "My Application",
  6. x = 0, y = 0, height = 600, width = 800)

既然我们使用命名实参来调用 createWindow 实参的顺序不再重要。有序实参和命名实参混合起来用也没有问题,但不是很好读:

  1. var w = createWindow(0, 0, title = "My Application",
  2. height = 600, width = 800, true)

编译器检查每个形参只接收一个实参。