Skip to content

59 串联代码块调用 ​

produce { 7 } 通过回调创建值,map { item * 2 } 再变换它。每个代码块的期望函数类型约束参数与返回值。

norm
class Box<T> {
  T value

  Box<R> map<R>(R transform(T item)) {
    return Box<R>(value: transform(value))
  }
}

Box<T> produce<T>(T work()) {
  return Box<T>(value: work())
}

main() {
  Box<Integer> answer = produce { 7 } map { item * 2 }
  printLine(answer.value)
}

预期输出:

text
14

动手试试:把第一个代码块改为返回 9,追踪结果。

精确规则:语言参考。

Norm 0.25