Scala 为什么';失败案例类型的t模式匹配?

Scala 为什么';失败案例类型的t模式匹配?,scala,pattern-matching,Scala,Pattern Matching,请参阅(更多详细信息,更多详细信息,更多详细信息): scala>valv=Some(9).map{case-lst:List[\u]=>lst;case-i:Int=>List()} :7:错误:scrutinee与模式类型不兼容; 已找到:列表[\ux] 必填项:Int valv=Some(9).map{case-lst:List[\u]=>lst;case-i:Int=>List()} 由于您使用的是Some(9),编译器知道要映射的元素是Int。列表[\u]可以从不成为Int,因此编译器

请参阅(更多详细信息,更多详细信息,更多详细信息):

scala>valv=Some(9).map{case-lst:List[\u]=>lst;case-i:Int=>List()}
:7:错误:scrutinee与模式类型不兼容;
已找到:列表[\ux]
必填项:Int
valv=Some(9).map{case-lst:List[\u]=>lst;case-i:Int=>List()}

由于您使用的是
Some(9)
,编译器知道要映射的元素是
Int
列表[\u]
可以从不成为
Int
,因此编译器告诉您正在做一些没有意义的事情

如果希望编译器将其视为
Some[Any]
,则必须明确说明类型:

val v = Some(9: Any).map { case lst: List[_] => lst; case i: Int => List() }
// v: Option[List[Any]] = Some(List())
或者,更有可能:

val x: Option[Any] = Some(9)
val v = x.map { case lst: List[_] => lst; case i: Int => List() }

但是,作为记录,您可能正在做一些不应该做的事情,您应该重新思考您的代码。

因为您使用的是
Some(9)
,编译器知道要映射的元素是
Int
列表[\u]
可以从不成为
Int
,因此编译器告诉您正在做一些没有意义的事情

如果希望编译器将其视为
Some[Any]
,则必须明确说明类型:

val v = Some(9: Any).map { case lst: List[_] => lst; case i: Int => List() }
// v: Option[List[Any]] = Some(List())
或者,更有可能:

val x: Option[Any] = Some(9)
val v = x.map { case lst: List[_] => lst; case i: Int => List() }

但是,作为记录,您可能正在做一些不应该做的事情,您应该重新思考您的代码。

因为您使用的是
Some(9)
,编译器知道要映射的元素是
Int
列表[\u]
可以从不成为
Int
,因此编译器告诉您正在做一些没有意义的事情

如果希望编译器将其视为
Some[Any]
,则必须明确说明类型:

val v = Some(9: Any).map { case lst: List[_] => lst; case i: Int => List() }
// v: Option[List[Any]] = Some(List())
或者,更有可能:

val x: Option[Any] = Some(9)
val v = x.map { case lst: List[_] => lst; case i: Int => List() }

但是,作为记录,您可能正在做一些不应该做的事情,您应该重新思考您的代码。

因为您使用的是
Some(9)
,编译器知道要映射的元素是
Int
列表[\u]
可以从不成为
Int
,因此编译器告诉您正在做一些没有意义的事情

如果希望编译器将其视为
Some[Any]
,则必须明确说明类型:

val v = Some(9: Any).map { case lst: List[_] => lst; case i: Int => List() }
// v: Option[List[Any]] = Some(List())
或者,更有可能:

val x: Option[Any] = Some(9)
val v = x.map { case lst: List[_] => lst; case i: Int => List() }

但是,作为记录,您可能正在做一些不应该做的事情,您应该重新思考您的代码。

此函数的类型是什么?什么类型的函数同时允许List和Int类型的值?这个函数的类型是什么?什么类型的函数同时允许List和Int类型的值?这个函数的类型是什么?什么类型的函数同时允许List和Int类型的值?这个函数的类型是什么?什么类型同时允许type List和Int的值?不幸的是,这是在解释已解析的JSON结构(从库中返回为Map[String,u])时发生的。在这里,要想避免一些非类型化的问题,就必须要有超高的想象力(标准库甚至都不这么做,我现在也不想这么做)。在这里,要想避免一些非类型化的问题,就必须要有超高的想象力(标准库甚至都不这么做,我现在也不想这么做)。在这里,要想避免一些非类型化的问题,就必须要有超高的想象力(标准库甚至都不这么做,我现在也不想这么做)。在这里,如果没有超级幻想(标准库甚至都不这么做,我也不想这么做),就无法解决一些非类型化的问题。