【发布时间】:2013-01-01 04:46:17
【问题描述】:
我一直在努力学习 scala 的来龙去脉,最近我遇到了一些我很好奇的事情。
据我了解,如果我想将一个有效延迟评估的代码块传递给一个函数,(而不是当场评估它)我可以输入:
def run(a: =>Int):Int = {...}
从这个意义上说,函数 run 接收一个尚未被计算的代码块,它计算并返回计算出的 Int。然后我尝试将这个想法扩展到 List 数据结构。打字:
def run(a: List[=>Int]) = {...}
但是,这会返回错误。我想知道为什么不允许这样做。除了通过这种语法之外,我如何传递未评估的代码块列表?
【问题讨论】:
标签: scala lazy-evaluation