问题标签 [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.
java - 用Scala中的Option包装Java中的空返回方法?
假设我有一个方法session.get(str: String): String
,但你不知道它会返回一个字符串还是 null,因为它来自 Java。
有没有更简单的方法在 Scala 中处理这个而不是session.get("foo") == null
?也许一些魔法适用ToOption(session.get("foo"))
,然后我可以用 Scala 的方式来对待它
scala - 在理解中使用 List 组合选项会根据顺序给出类型不匹配
为什么这种构造会在 Scala 中导致类型不匹配错误?
如果我用 List 切换 Some 它编译得很好:
这也可以正常工作:
scala - 如何将 Option[X] 的 Scala 集合转换为 X 的集合
我开始探索 Scala,我感兴趣的一件事Option
是能够消除null
相关错误的类型和承诺。
但是,我无法弄清楚如何将 的列表(或其他集合)转换为(显然过滤掉任何值为)Option[String]
的集合。String
None
换句话说,我如何从中得到:
...对此:
如果这对答案有任何影响,我正在使用 Scala 2.8。
scala - 将 AnyRef 装入选项的方法在哪里?
在James Iry 的这篇博文中,他写道:
另外,Scala 有一个“选项”方法,可以将一个值提升为 Some(value) 或 None ,具体取决于它是否为空......
option
我似乎在 scaladoc 的任何地方都找不到这种方法。
Iulian Dragos的 gdata 客户端项目包含一个可能是 James 所指的方法。
请指出我在哪里可以在 scaladoc 中找到此方法。
PS我有一个看起来像这样的方法:
对于是否应该将其更改为,我有两种想法:
因为客户端可以使用null
. 目前,在第一个实例中,我希望有一个字符串参数,并且我使用option
前面提到的方法手动将其装箱。
scala - 为什么 Option 没有 fold 方法?
我想知道为什么scala.Option
没有fold
定义这样的方法:
相当于
没有比使用map
+更好的getOrElse
吗?
scala - Scala:具有两个或更多选项的映射
基本上,我正在寻找最类似于 scala 的方式来执行以下操作:
这给出了正确的输出:
然而,要总结两个以上的选项,我必须使用太多if
的 s 或使用某种循环。
编辑-1:
在写这个问题时,我想出了一个答案:
对于我没有经验的人来说,这看起来非常地道。这甚至可以使用两个以上的值。然而,是否可以在不转换为列表的情况下做同样的事情?
编辑-2:
我最终得到了这个解决方案(感谢ziggystar):
编辑-3:
感谢Landei的另一种选择:
scala - Scala Option[(A, B)] 模式匹配
我正在编写一个 Java 代码生成器。
我有一个不可变的 Map ,其中包含从java.sql.Types
[Int] 到元组的映射,(String, String)
其中第一个值是 Java 类型,第二个值是 Java 包,如果默认情况下不导入该类型,则从该包中导入该类型(java.lang
):
我正在尝试在搜索此地图时进行模式匹配,数据库元数据dataType
中的值在哪里:java.sql.Types
case
编译器在第一个(以 开头)给我一个错误case Some(jType, Some(iType))
:error: wrong number of arguments for <none>: (x: (java.lang.String, Option[java.lang.String]))Some[(java.lang.String, Option[java.lang.String])]
我不确定出了什么问题。
scala - 嵌套的 Scala 匹配器为什么 Some(Some(1),1) 不能匹配?
嵌套匹配似乎不起作用,这是一个奇怪的限制。
行为示例如下:
这有效:
现在,我只是一个笨蛋还是有更好的方法来实现这一点?
scala - 哪些 Scala 方法返回 null 而不是 Option,为什么?
我想知道标准库是否是完全null
免费的,如果不是,我会感兴趣存在哪些合理的用例,其中返回null
比返回某些Option
实例更可取。