加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala中的“返回”和“try-catch-finally”块评估

发布时间:2020-12-16 09:21:05 所属栏目:安全 来源:网络整理
导读:以下两个代码产生不同的结果: def x = try{ true} finally false 调用x成为true def y:Boolean = try{ return true} finally { return false} 调用y得到false 返回版本的行为与Java相同. 我个人不会在scala中使用’return’.但是,了解scala如何评估try-catc
以下两个代码产生不同的结果:

def x = try{
  true
} finally false

调用x成为true

def y:Boolean = try{
  return true
} finally {
  return false
}

调用y得到false

返回版本的行为与Java相同.

我个人不会在scala中使用’return’.但是,了解scala如何评估try-catch-finally块的值是很好的.谢谢.

解决方法

你 should not在finally块中有一个return语句(即使它在技术上是允许的,至少在Java中,C#例如禁止它).

如果Scala终于阻止了一个隐含的返回,那么总是会破坏预期的返回值.所以没有意义.

但是,如果你明确地写这样的话,我想它无法帮助你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读