【发布时间】:2018-07-06 17:08:26
【问题描述】:
我不明白为什么 Scala 在以下示例中抱怨类型错误:
def GetRanges(RangeString1: String): Array[String] = {
val GetOneRange = "\\d+\\-\\d+".r;
var AllRanges = new Array[String](0);
if (!f_stringNullEmpty(RangeString1)) {
GetOneRange.findAllIn(RangeString1).matchData.foreach(
m => AllRanges = AllRanges ++ Array[String](m.group(0)) // Explicit casting to Array[String]
)
}
return scala.util.Sorting.quickSort(AllRanges);
}
我收到的错误是:
notebook:38: error: type mismatch;
found : Unit
required: Array[String]
return scala.util.Sorting.quickSort(AllRanges);
^
显然,遍历正则表达式结果并将它们添加到数组中会导致类型更改。但为什么? 还是我错过了一些更基本的东西?
注意:我知道 if 语句返回类型 Unit,因为没有指定其他类型。但我看不出这会影响我的数组类型。
【问题讨论】:
标签: scala type-mismatch databricks