Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >scala中的"return“和”try-catch- and“块求值

scala中的"return“和”try-catch- and“块求值
EN

Stack Overflow用户
提问于 2011-12-09 09:52:17
回答 2查看 3.5K关注 0票数 15

以下两个代码生成不同的结果:

代码语言:javascript
运行
AI代码解释
复制
def x = try{
  true
} finally false

invoke x获取true

代码语言:javascript
运行
AI代码解释
复制
def y:Boolean = try{
  return true
} finally {
  return false
}

invoke y获取false

return版本行为与Java相同。

就我个人而言,我从不在scala中使用'return‘。但是知道scala如何计算try-catch-finally块的值是很好的。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-09 09:56:06

在finally块中有一条should not语句(即使这在技术上是允许的,至少在Java语言中是允许的,例如C#禁止这样做)。

如果Scala finally块有一个隐式的返回,那么它总是会破坏预期的返回值。所以这没有任何意义。

但我想,如果你明确地这样写它,它对你没有帮助。

票数 13
EN

Stack Overflow用户

发布于 2011-12-09 10:05:16

根据Scala语言规范:

A尝试表达式try { b }最后e对块b求值。如果对b的求值没有导致抛出异常,则对表达式e求值。如果在计算e的过程中抛出异常,则try表达式的求值将中止,并抛出异常。如果在计算e的过程中没有抛出异常,则返回b的结果作为try表达式的结果。

这种行为似乎与该规范相矛盾。我猜想,由于' return‘会立即从函数返回,这会导致覆盖try块的标准行为。一个很有启发性的例子是:

代码语言:javascript
运行
AI代码解释
复制
def z : Boolean = {
  val foo = try { true } finally { return false }
  true
}

调用z将返回false

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8443743

复制
相关文章
基于图像分类的动态图像增强
论文链接:http://openaccess.thecvf.com/content_cvpr_2018/papers/Sharma_Classification-Driven_Dynamic_Image_CVPR_2018_paper.pdf
Natalia_ljq
2020/06/03
1.5K0
基于图像分类的动态图像增强
图像加雾仿真
算法:图像加雾仿真是降低亮度、对比度、和分辨率来模拟雾中场景成像接近真实雾霾场景。
裴来凡
2022/05/29
8770
图像加雾仿真
OpenCV中如何读取URL图像文件
最近知识星球收到的提问,觉得是一个很有趣的问题,就通过搜集整理归纳了一番,主要思想是通过URL解析来生成数据,转为图像/Mat对象。但是在Python语言与C++语言中的做法稍有不同。
OpenCV学堂
2019/07/19
5.9K0
在Swift中创建可缩放的图像视图
没有什么比完美的图片更能让你的应用程序熠熠生辉,但如果你想让你的应用程序用户真正参与并与图片互动呢?也许他们想放大、平移、掌握这些图像?
玖柒的小窝
2021/11/05
5.8K0
图像动态融合
算法:图像动态融合是以第一张图为主图,保留主图部分颜色信息和边缘信息,以第二张图为融入源,保留融入源部分颜色信息,动态调整融入比例。
裴来凡
2022/05/29
3810
图像动态融合
Halcon 创建图像
Halcon 中 HImage 为图像的数据结构,本文记录 HALCON 中生成图像的几种方式。 创建图像相关算子 序号 算子名称 算子含义 1 copy_image 复制一个图像并为其分配新的内存。 2 gen_image1 从指向像素的指针创建图像。 3 gen_image1_extern 使用存储管理从像素上的指针创建图像。 4 gen_image1_rect 从像素上的指针创建一个带有矩形域的图像(带存储管理)。 5 gen_image3 创建一个从三个指针到像素(红色/绿色/蓝色)的图像。
为为为什么
2023/02/18
3.6K0
Halcon 创建图像
如何将SVG图像使用在HTML网站中
使用PS生成SVG图像用编辑器打开发现是data:img/png;base64而非/path
Din
2018/10/19
4.8K0
如何将SVG图像使用在HTML网站中
图像中的几何变换
一. 图像几何变换概述 图像几何变换是指用数学建模的方法来描述图像位置、大小、形状等变化的方法。在实际场景拍摄到的一幅图像,如果画面过大或过小,都需要进行缩小或放大。如果拍摄时景物与摄像头不成相互平行关系的时候,会发生一些几何畸变,例如会把一个正方形拍摄成一个梯形等。这就需要进行一定的畸变校正。在进行目标物的匹配时,需要对图像进行旋转、平移等处理。在进行三维景物显示时,需要进行三维到二维平面的投影建模。因此,图像几何变换是图像处理及分析的基础。 二. 几何变换基础 1. 齐次坐标: 齐次坐标表示是计算机图形
智能算法
2018/04/02
2.2K0
图像中的几何变换
图像中的裂纹检测
我们首先需要从互联网上获取包含墙壁裂缝的图像(URL格式)数据。总共包含1428张图像:其中一半是新的且未损坏的墙壁;其余部分显示了各种尺寸和类型的裂缝。
小白学视觉
2021/01/18
1.4K0
Taro中如何将store加载到项目中
上面文章我们了解了如何创建store,最后导出时,在函数内部创建了store,所以导出时,函数需要调用,然后通过provicer组件将其注入到项目中。
挥刀北上
2022/05/11
7780
Taro中如何将store加载到项目中
【短道速滑十】从单幅图像中评估加性噪音的均方差。
  estimate_noise estimate_noise — Estimate the image noise from a single image.
用户1138785
2023/01/05
5700
【短道速滑十】从单幅图像中评估加性噪音的均方差。
动态规划“遇见”图像检索
两个对象的相似度的多少,统计学上常用的方法是对象在多维属性空间的距离来量化。同样图像也是对象的一种;
herain
2022/04/27
3380
动态规划“遇见”图像检索
【MATLAB】图像导出 ( 导出绘制的图像 | 图像设置 )
选择 matlab 生成的图形界面 " Figure 1 " 的菜单栏 , " 编辑选项 " , 点击 " 复制图形 " , 可以将图像拷贝到 Word 文档中 ;
韩曙亮
2023/03/29
10K0
【MATLAB】图像导出 ( 导出绘制的图像 | 图像设置 )
创建合成CT图像数据
本文我们描述了一种从一组小样本中创建合成医学图像的方法,我们的方法基于随机部分变形,因此无需深度学习(不需要GANs)。
小白学视觉
2020/07/20
1.2K0
创建合成CT图像数据
Android 图像处理(1)
操作的对象是每个像素,我们可以改变图像的色相(Hue)、饱和度(Saturation)、明度(Luminance) ColorActivity
用户3004328
2018/09/06
4960
Android 图像处理(1)
161. 旋转图像交换加转置
样例 给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]]
和蔼的zhxing
2018/09/04
3320
关于OpenCV中图像的widthStep
在OpenCV的IplImage指针结构中,有一个成员widthStep,这个值如何来确定呢,最近让我头疼了好久,终于想明白了,现在
全栈程序员站长
2022/07/01
5440
StarGAN - 图像到图像的翻译
通过输入来自两个不同领域的训练数据,StarGANs模型可以学习将某一个领域的图片转换成为另一个领域。
AI研习社
2019/05/08
8660
StarGAN - 图像到图像的翻译
点击加载更多

相似问题

用泛型处理构造函数中的类型擦除

55

在Java中围绕类型擦除设计构造函数

31

由于类型擦除而导致的模糊构造函数

13

Java中的类型擦除

12

Java类型擦除

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文