【发布时间】:2019-06-03 15:28:18
【问题描述】:
为什么以下代码不能按预期工作?通过查看代码,我认为它可能会返回“数字列表”,因为数字是一个带有数字的列表。但我运行代码并将输出作为“字符串列表”。我想我清除了这里的大部分困惑。
val numbers: List[Int] = List(1,2,3)
val numbersMatch: String = numbers match {
case listOfStrings: List[String] => "a list of strings"
case listOfNumbers: List[Int] => "a list of numbers"
case _ => ""
}
println(numbersMatch)
【问题讨论】:
-
在 REPL 上运行它时发生了什么?结果是否符合预期?如果不是,为什么/如何不? SO 不应该用于“人工编译器”。
-
我没有理解类型擦除的概念
-
我认为您的意思是对发布的答案发表评论。但是你能澄清这个问题吗?您正在寻求答案,但没有问题。我想你想知道当你运行代码时会发生什么,但答案就是你自己运行代码。如果输出没有意义,请解释您的直觉是什么以及它失败的地方,然后有人可能会更深入地了解类型擦除或您的问题。照原样,你没有问过问题,只是发布了一个没有上下文的代码 sn-p。
-
您好,欢迎来到 StackOverflow。请花一些时间阅读帮助页面,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。更重要的是,请阅读the Stack Overflow question checklist。您可能还想了解Minimal, Complete, and Verifiable Examples。
-
你的问题很不清楚。对我来说,这段代码完全符合预期。所以,很明显,你似乎期望它做一些与我不同的事情。但是,你没有说你的期望是什么。当您不告诉我们您期望它做什么时,我们如何告诉您为什么代码没有按照您期望的那样做?
标签: scala