我知道之前已经问过这个问题,但是答案不适用于这种情况,或者我不理解它们.
基本上,为什么以下(重新创建我的问题的简单示例)不起作用?
class Test[+T] {
var list: List[T] = _
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我有一个对象,我想传递一个Test [Nothing]的实例(空的测试),除非我在T中使用Test co-variant,否则这不起作用.
Option在Scala 处理时,我应该考虑哪些事情来决定是映射还是模式匹配?例如,如果我有Option[MyClass],我可以通过以下方式处理它:
def getList(myOptionInstance: Option[MyClass]): List[String] =
myOptionInstance map (...) getOrElse(List.empty[String])
Run Code Online (Sandbox Code Playgroud)
要么
def getList(myOptionInstance: Option[MyClass]): List[String] = myOptionInstance match {
case Some(mySomeInstance) => .....
case None => List.empty[String]
}
Run Code Online (Sandbox Code Playgroud)
我何时会选择一个而不是另一个?
scala ×2