either相关内容

使用任一处理 Scala 代码中的故障

Option monad 是一种很好的表达方式,可以在 Scala 中处理有或无的事情.但是,如果在“无事发生"时需要记录一条消息怎么办?根据 Scala API 文档, Either 类型通常用作替代 scala.Option where Left代表失败(按照惯例)和Right 类似于 Some. 但是,我没有运气找到使用“任何"或涉及“任何"的真实世界示例来处理失败的最佳实践.最 ..
发布时间:2021-12-07 13:07:50 其他开发

使用Either ->处理失败堆栈跟踪在哪里?

我从一些人那里听说在 Scala 中我们倾向于(像其他函数式语言一样)不破坏控制流......相反,按照惯例,我们在 Either Left. 但是我们如何从该异常中获取 stracktrace 呢?现在我在左边返回一个简单的 Error 案例类,带有代码、消息和原因(Error 也是).但是如果我有错误,我就无法获得堆栈跟踪.如果我的应用程序变得复杂,可能很难找到返回那个 Error 的代 ..
发布时间:2021-07-15 20:43:19 Java开发

Try[Result]、IO[Result]、Either[Error,Result],我到底应该用哪个

我想知道我的方法的签名应该是什么,以便我优雅地处理不同类型的失败. 这个问题在某种程度上是我对 Scala 中的错误处理的许多问题的总结.您可以在这里找到一些问题: Scala 抛出异常,什么是“官方"规则" 无论是选项还是理解 任一单子操作 现在,我明白以下几点: 两者都可以用作可能失败的方法调用的结果包装器 Try 是一个 Right biaised任一,失败是一 ..
发布时间:2021-07-15 20:11:13 其他开发

为什么`Left` 和`Right` 有两个类型参数?

我知道现在很难在不破坏现有代码的情况下进行更改,但我想知道为什么首先要这样做. 为什么不只是: 密封特性Either[+A, +B]case class Left[A](x: A) 扩展Either[A, Nothing]case class Right[B](x: B) 扩展Either[Nothing, B] 这里有什么我看不到的缺点吗...? 解决方案 不确定这个答案与 S ..
发布时间:2021-07-15 19:46:40 其他开发

如何收集Either Monad中的所有错误消息?

我尝试使用 Applicatives 和 Either Monad 验证 Record 的构造.它工作正常.但是我看不到所有错误消息.只有第一个可见,因为任一Monad 的 Right 路径都会忽略它们. 这是我的代码: 导入数据.导入Text.Printf(printf)数据记录=记录{fieldA ::字符串,fieldB ::字符串,fieldC ::字符串派生(Show,Eq)类型 ..

Scala:“含糊的隐式值",但找不到正确的值

我正在编写一个小型Scala程序,该程序应该: 从本地FS逐行读取文件 从每一行中解析三个双精度值 根据这三个值创建案例类的实例 将这些实例传递到二进制堆 为了能够将String解析为Double和CoordinatePoint,我想出了以下特征: trait Parseable[T] { def parse(input: String): Either[String, ..
发布时间:2020-11-27 05:16:19 其他开发

LPsolveAPI中的或非约束

我目前正在R中的LPsolveAPI中编写MIP.该程序本身很简单,但是我无法找到一种写或非约束的方法,而不能直接调用新的二进制变量或二进制值在lhs上. LPsolveAPI是否不支持此功能,或者我是否缺少明显的功能? 解决方案 使用新的二进制变量是在lp_solve中建模“或"或“约束"的标准方法. ( LpSolveAPI 基于也就是说,根据您的限制,可能会帮助您的一件事是使用SOS ..
发布时间:2020-06-13 19:03:10 其他开发

Scala错误处理中的错误上下文

假设我需要调用远程JSON/HTTP服务.我发出一个JSON请求,通过HTTP将其发送到服务器,然后接收并解析JSON响应. 假设我的数据类型为MyError,并且我的所有函数都返回Either[MyError, R] type Result[A] = Either[MyError, A] def makeJsonRequest(requestData: RequestDat ..
发布时间:2020-06-13 19:03:08 其他开发

将Seq [Either [String,Int]]转换为(Seq [String],Seq [Int])的有效和/或惯用方式

稍微简化一下,我的问题来自要使用返回Either[String,Int]的函数parse解析的字符串input的列表. 然后list.map(parse)返回Either的列表.该程序的下一步是格式化一条错误消息,该错误消息汇总在解析的整数列表中传递的所有错误或. 让我们来寻找我正在寻找的解决方案partitionEithers. 通话 partitionEithers(L ..
发布时间:2020-06-13 19:03:05 其他开发

两种操作

我刚刚开始习惯于处理单子运算. 对于期权类型,托尼·莫里斯的备忘单有助于: http://blog.tmorris.net/posts/scalaoption-cheat-sheet/ 所以最后似乎很容易理解: 地图可转换选项内部的值 flatten允许在Option[X] 中转换Option[Option[X]] flatMap是一种映射操作,它生成一个Option[Option ..
发布时间:2020-06-13 19:02:56 其他开发

Scala向右映射或向左返回

是否可以以与Option类似的方式处理Either?在Option中,我有一个getOrElse函数,在Either中,我想返回Left或处理Right.我正在寻找没有任何样板的最快方法: val myEither:Either[String, Object] = Right(new Object()) myEither match { case Left(leftValue) => ..
发布时间:2020-06-13 19:02:49 其他开发