gpt4 book ai didi

scala - 具有匿名函数的 println 不打印期望值

转载 作者:行者123 更新时间:2023-12-02 09:37:17 25 4
gpt4 key购买 nike

我想知道 Scala 匿名函数。

object hello { 
def main(args: Array[String]) {
println ( ( (x:Int)=>return x+1)(1) )
}
}

我预计结果为“2”,但输出为空白。我的假设是错误的吗?

最佳答案

当您引发结果时,我没有得到空白,但出现以下编译器错误:

scala> println ( ( (x:Int)=> return x+1)(1) )
<console>:8: error: return outside method definition
println ( ( (x:Int)=> return x+1)(1) )

删除 return 关键字,该关键字在 Scala 中通常无用,此外:

scala> println ( ( (x:Int)=>x+1)(1) )
2

事实上,return 只能从方法(用 def 定义)返回。
您的函数文字调用未包装到方法主体中,这就是您出现此错误的原因。

为了说明这一点,以下代码片段是有效的:

scala> def wrappingMethod(): Int = {  //note this enclosing method
((x:Int)=> return x+1)(1) // it's valid to call return here
}
| | wrappingMethod: ()Int

scala> wrappingMethod()
res3: Int = 2

关于scala - 具有匿名函数的 println 不打印期望值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24241348/

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