scala – 函数参数类型和=>
发布时间:2020-12-16 09:47:41 所属栏目:安全 来源:网络整理
导读:方法参数的声明是什么意思: def myFunc(param: = Int) = param =在高清晰度? 解决方法 这是所谓的pass-by-name。这意味着您传递的函数应该返回Int,但主要用于实现参数的延迟评估。它有点类似于: def myFunc(param: () = Int) = param 这里是一个例子。考
方法参数的声明是什么意思:
def myFunc(param: => Int) = param =>>在高清晰度? 解决方法
这是所谓的pass-by-name。这意味着您传递的函数应该返回Int,但主要用于实现参数的延迟评估。它有点类似于:
def myFunc(param: () => Int) = param 这里是一个例子。考虑一个返回一些Int值的answer函数: def answer = {println("answer"); 40} 和两个函数,一个采用Int和一个采用Int by-name: def eagerEval(x: Int) = {println("eager"); x;} def lazyEval(x: => Int) = {println("lazy"); x;} 现在使用答案执行它们: eagerEval(answer + 2) > answer > eager lazyEval(answer + 2) > lazy > answer 第一种情况是显而易见的:在调用eagerEval()回答之前评估并打印“answer”字符串。第二种情况更有趣。我们实际上是传递一个函数到lazyEval()。 lazyEval首先打印“lazy”并计算x参数(实际上,调用作为参数传递的x函数)。 也可以看看 > Scala Returning a void function with 0 parameters,ugly syntax? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |