问题标签 [scala-option]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
4935 浏览

scala - 是否可以/应该在 Scala 中添加/创建从 T 到 Option[T] 的隐式转换?

这是一个让事情变得更有效率的机会吗(对于程序员来说):我发现必须将东西包装SomeSome(5). 像这样的东西怎么样:

0 投票
3 回答
33649 浏览

scala - 有scala身份功能吗?

如果我有类似 aList[Option[A]]并且想将其转换为 a List[A],则标准方法是使用flatMap

现在o => o只是一个身份功能。我本以为会有一些方法可以做到:

但是,我无法使其正常工作,因为您无法生成object. 我尝试了几件事无济于事;有没有人有这样的工作?

0 投票
3 回答
3034 浏览

scala - 如何将 X => Option[R] 转换为 PartialFunction[X,R]

只要我们有 a PartialFunction[X,R],就很容易将其转换为返回的函数Option[R],例如

但是,如果任务相反怎么办:假设我有一个函数作为参数f获取并作为结果返回。我想从中受益。什么是最好的方法?XOption[R]PartialFunction[X,R]

我想出的东西对我的口味来说看起来很丑:

我错过了一些更好的方法吗?

0 投票
5 回答
2731 浏览

scala - 到处使用 Option 感觉有点尴尬。难道我做错了什么?

由于我阅读了有关Option帮助您避免 NullPointerException 的类的文章,因此我开始在各处使用它。想象一下这样的事情:

后来当我使用它时:

做这样的事情对我来说并不那么“正确”。我还注意到它.get已被弃用。. 这种事情你们也在用 Option 做吗,还是我走错了路?

0 投票
1 回答
1835 浏览

scala - 为什么 Option 不直接扩展 Iterable 特征?

Option可以隐式转换为Iterable- 但为什么它不只是直接实现Iterable

编辑: 事实上它甚至比这更复杂,因为在 2.8Option中确实声明了一个iterator方法

0 投票
4 回答
3090 浏览

scala - 有什么方法可以在运行时使用反射访问 Scala Option 声明的类型?

所以,我有一个看起来像这样的 Scala 类:

我正在解决一个问题,我有一个 String 值,我想在运行时使用反射将它强制转换为 Option[Int] 。所以,在另一段代码(对TestClass一无所知)中,我有一些这样的代码:

为此,我需要知道该字段是一个选项,并且选项的类型参数是 Int。

我有什么选择可以在运行时确定“值”的类型是 Option[Int](即使用反射)?

我已经看到通过注释字段解决了类似的问题,例如@OptionType(Int.class)。如果可能的话,我更喜欢不需要在反射目标上注释的解决方案。

0 投票
2 回答
33498 浏览

scala - 如何使用高阶函数展平选项列表?

使用 Scala 2.7.7:

如果我有一个选项列表,我可以使用理解将它们展平:

我不喜欢这种风格,宁愿使用 HOF。这种尝试过于冗长而无法接受:

直觉上我会期望以下工作,但它没有:

即使以下似乎也应该有效,但没有:

我能想到的最好的是:

...但我宁愿不必将选项转换为列表。这似乎很笨拙。

有什么建议吗?

0 投票
5 回答
7281 浏览

list - scala 返回列表中的第一个 Some

我有一个清单l:List[T1],目前我正在做以下事情:

myfun函数返回 None 或 Some,flatten 丢弃所有的 None 并 find 返回列表的第一个元素(如果有)。

这对我来说似乎有点hacky。我认为可能存在一些便于理解或类似的东西,这会减少浪费或更聪明。例如:如果在 list期间myfun返回任何 答案,我不需要任何后续答案。Somemapl

0 投票
4 回答
1684 浏览

scala - 如何反转 Option Monad 的流程?

比如说,我有一堆“验证”函数,如果没有错误则返回 None,否则返回 Some(String) 指定错误消息。类似于以下内容...

我将按顺序调用它们,一旦返回 Some(String),我就会停止并返回相同的值。如果它返回 None,我会转到下一个,直到序列结束。如果他们都返回None,我返回None。

我想将它们粘合在一起以“表达”。就像是 ...

但是,选项的流动与我在这里想要的完全相反。它在 None 处停止,然后是 Some(String)。

我怎样才能实现这样的目标?

0 投票
3 回答
1865 浏览

scala - scala中的选项单子

Option monad 是如何工作的?我正在浏览scala api并且有一个示例(我的意思是第二个),

由于 for comprehension 的工作原理,如果从 request.getParameter 返回 None,则整个表达式的结果为 None

但是当我尝试这段代码时:

我得到一个编译错误。这应该如何工作?