Skip to content

54 捕获外部值 ​

multiplier 返回后,Lambda 仍可读取外层的 factor。每次调用传入新的 number,同时沿用被捕获的倍数。

norm
Function<Integer(Integer)> multiplier(Integer factor) {
  return (Integer number) {
    number * factor
  }
}

main() {
  Function<Integer(Integer)> triple = multiplier(factor: 3)
  printLine(triple(4))
  printLine(triple(7))
}

预期输出:

text
12
21

动手试试:再创建一个倍数为 5 的函数值。

精确规则:语言参考。

Norm 0.25