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,追踪结果。
精确规则:语言参考。