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