简单表达式的错误非法开始
Error illegal start of simple expression
我遇到了这个错误:
error: illegal start of simple expression
def process_alcs(lines: List[String]) : List[(String, Double)] = for (line <- lines) yield (val a = line.split(",")) (a[0],a[4].toDouble)
对于这行代码:
def process_alcs(lines: List[String]) : List[(String, Double)] =
for (line <- lines) yield (val a = line.split(",")) (a[0],a[4].toDouble)
起初我以为是括号不匹配,但我检查了 100 次
尝试
def process_alcs(lines: List[String]) : List[(String, Double)] = for (line <- lines) yield {
val a = line.split(",")
(a(0),a(4).toDouble)
}
基本上,您是在对产量进行多线评估。因此,您必须使用 {
而不是 (
封装其中的代码。此外,这两个语句应该封装在一个 {}
对中,因为它们会建立你想要的结果。
此外,scala 中的数组成员是使用 ()
而不是 []
访问的。所以,你想使用 a(0) 而不是 a[0]
另外,这似乎与今天有人问的另一个问题有关,在这种情况下,他想将第 4 列中的值转换为两倍。要访问第 4 列,您需要使用 a(3).
在这种情况下,代码变为,
def process_alcs(lines: List[String]) : List[(String, Double)] = for (line <- lines) yield {
val a = line.split(",")
(a(0), a(3).toDouble)
}
希望这对您有所帮助。如果您还有其他问题,请告诉我:)
编辑:要转换为地图,请尝试,
def process_as_map(lines: List[String]) : Map[String, Double] = {
val results: List[(String, Double)] = for (line <- lines) yield {
val a = line.split(",")
(a(0), a(3).toDouble)
}
results.toMap
}
请参阅评论以了解我为何根据您的代码进行如此调整
我遇到了这个错误:
error: illegal start of simple expression def process_alcs(lines: List[String]) : List[(String, Double)] = for (line <- lines) yield (val a = line.split(",")) (a[0],a[4].toDouble)
对于这行代码:
def process_alcs(lines: List[String]) : List[(String, Double)] =
for (line <- lines) yield (val a = line.split(",")) (a[0],a[4].toDouble)
起初我以为是括号不匹配,但我检查了 100 次
尝试
def process_alcs(lines: List[String]) : List[(String, Double)] = for (line <- lines) yield {
val a = line.split(",")
(a(0),a(4).toDouble)
}
基本上,您是在对产量进行多线评估。因此,您必须使用 {
而不是 (
封装其中的代码。此外,这两个语句应该封装在一个 {}
对中,因为它们会建立你想要的结果。
此外,scala 中的数组成员是使用 ()
而不是 []
访问的。所以,你想使用 a(0) 而不是 a[0]
另外,这似乎与今天有人问的另一个问题有关,在这种情况下,他想将第 4 列中的值转换为两倍。要访问第 4 列,您需要使用 a(3).
在这种情况下,代码变为,
def process_alcs(lines: List[String]) : List[(String, Double)] = for (line <- lines) yield {
val a = line.split(",")
(a(0), a(3).toDouble)
}
希望这对您有所帮助。如果您还有其他问题,请告诉我:)
编辑:要转换为地图,请尝试,
def process_as_map(lines: List[String]) : Map[String, Double] = {
val results: List[(String, Double)] = for (line <- lines) yield {
val a = line.split(",")
(a(0), a(3).toDouble)
}
results.toMap
}
请参阅评论以了解我为何根据您的代码进行如此调整