据我了解,我们应该避免null
在 Scala 中使用。如果某些字段在逻辑上不具有“无值”,那么我们不应该使用Option
以避免过度使用Option
s。
所以让我们看看代码。我有课
case class User (name: String)
而且我 100% 确定该name
字段不能null
,因此我只使用String
了Option[String]
.
问题是一些标准的 Scala 方法返回给我Option
。(在我的情况下,该IterableLike#find
方法返回选项)
所以问题是我如何User
在name
包装后创建实例Option
?稍微清楚一点,这是代码:
val userName: Option[String] = myList.find(...)
val user = User(userName.get) // or may be I should use userName.orNull ? or throw exception?
我听说这Option.get
不是优雅的解决方案。orNull
方法几乎相同get
。