gpt4 book ai didi

Scala:为什么 List[=>Int] 不起作用?

转载 作者:行者123 更新时间:2023-12-04 05:54:05 30 4
gpt4 key购买 nike

我一直在努力学习 scala 的来龙去脉,最近我遇到了一些我很好奇的事情。

据我了解,如果我想将一个有效地延迟评估的代码块传递给一个函数,(而不是当场评估它)我可以输入:

def run(a: =>Int):Int = {...}

从这个意义上说,函数 run 接收一个尚未被评估的代码块,它评估并返回计算出的 Int 。然后我尝试将这个想法扩展到 List 数据结构。打字:
def run(a: List[=>Int]) = {...} 

但是,这会返回错误。我想知道为什么不允许这样做。除了通过这种语法之外,我如何传递未评估的代码块列表?

最佳答案

=>Int是按名称参数的语法。 =>Int不是类型,因此不能用作 List 的参数.但是,()=>Int是一种类型。它是返回 Int 的空函数类型.所以这有效:

def run(a: List[()=>Int]) = {...} 

关于Scala:为什么 List[=>Int] 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14107882/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com