为什么这个列表意味着它在 scala 中还有 3 或 3 个元素
x::y::List(xs::ys)::zs
x、y 或 ys、zs 可以为空吗? 根据老师的说法,为什么它必须是一个至少 3 个元素的列表
谢谢!
最佳答案
让我们为这个表达式提供一些上下文,使类型变得明确。
def foo[A](
x: List[List[A]],
y: List[List[A]],
xs: A,
ys: List[A],
zs: List[List[List[A]]]
): List[List[List[A]]] =
x::y::List(xs::ys)::zs
按照惯例,如果您有标识符 x
和 xs
,那么 xs
将具有集合类型(例如 List[A]
)和 x
将是集合的元素类型(例如 A
)。这里的情况并非如此,所以我认为你的老师通过错误地命名变量使这变得不必要的困难。
现在,例如,让我们使用尽可能少的值来调用 foo
:
> foo(Nil, Nil, 1, Nil, Nil)
res: List[List[List[Int]]] = List(List(), List(), List(List(1)))
关于list - 为什么这个列表意味着它在 scala 中还有 3 或 3 个以上的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26249900/