【发布时间】:2021-02-01 15:40:45
【问题描述】:
谁能解释一下:
Seq[Any] 和 Seq[_ <: Any] ?
在我看来,我可以将所有内容都放在这两种情况下,因为所有内容都扩展了 Any。
【问题讨论】:
-
Any是糟糕设计的征兆 -
@user 你可以。试试看:
val seq1: Seq[_ <: Any] = Seq(1, 2, 3); val seq2 = seq1 :+ "". -
@cchantep 通常是的,但是对于协变
F,F[Any]与存在类型F[_]相同,存在类型不一定是糟糕设计的症状:) -
@AlexeyRomanov 嗯,这很奇怪。我想我在考虑 Java 的通配符。
-
@user 区别不是因为存在类型与通配符,而是因为
:+(和类似的Scala方法)的不同签名和Java中add的变异。
标签: scala generics existential-type