如果Scala方法可以抛出/返回错误但具有单位返回类型,那么它应具
因此,通常当我们运行一个既失败又返回值的方法时,我们可以将方法返回类型编码为Either [SomeErrorType,ReturnType].但很多时候我们正在为其副作用运行一种方法,因此返回类型是Unit.
我当然可以返回一个[SomeErrorType,Unit],但肯定看起来很奇怪. 我也可以只返回一个Option [SomeErrorType],但它看起来并没有那么好(并且打破了与其他Either [SomeErrorType,NonUnitReturnType]的可能存在的对称性. 在这些情况下你的方法是什么? > def m():单位//并隐含地知道可以抛出异常? 谢谢 解决方法
我在这种情况下使用Try [Unit].
它编码该方法的结果成功或失败并带有一些异常,可以进一步处理. > vs T =>单元尝试将错误提升到应用程序级别,在签名中编码可能会出现一些错误,并允许应用程序将其作为值处理. 我用这样的东西来实现检查. (想象的例子) for { entity <- receiveEntity // Try[Entity] _ <- isRelational(entity) _ <- isComplete(entity) _ <- isStable(entity) } yield entity 每个支票的形式为:Entity =>尝试[单位] 如果所有检查都通过了检查失败的第一个错误,这将返回实体. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- scala Int类抽象def没有具体实现
- 在Akka(Scala)中组件的概率失败测试
- bootstrap39-Bootstrap 下拉菜单dropdown
- twitter-bootstrap – 图片库/ Grid for Twitter Bootstrap
- 角 – rxjs替代做Promise.resolve?
- No 'Access-Control-Allow-Origin' header is p
- 什么是Scala语法用于求和对象列表?
- scala – 公开来自单例类型的路径依赖类型
- bash – 如何在除.svn目录之外的所有文件上递归运行命令
- 在angular 2中,如何使index.html页面中的规范标记动态更改