1

我有以下火花代码片段。

但是得到以下错误:

:8: 错误:缺少参数类型。

这发生在这里:

       val index:Int= col1(i) ; tokened +=splitted(index) + " " ;  } } 
                     ^

我无法弄清楚它从哪里开始,因为我似乎已经指定了所有属性。我还需要返回字符串,这样方法才能成为字符串 => 字符串(当前是字符串 -> 单元)这是我第一次在 scala 中编码,如果这是一个愚蠢的问题,我深表歉意

line => { var col1:Array[Int] = Array(1,2) ; var tokened:String = "" ; 
    var splitted:Array[String]=line.split(" ") ;  
    for (i<- 0 to col1.length) { 
        val index:Int= col1(i); 
        tokened +=splitted(index) + " " ;  
    } 
} 
4

1 回答 1

1

我想这就是你需要的:

(line: String) => { /* Previously missing type annotation */
  var col1:Array[Int] = Array(1,2)
  var tokened:String = ""
  var splitted:Array[String]=line.split(" ")

  for (i<- 0 to col1.length) { 
    val index:Int= col1(i)
    tokened += splitted(index) + " "
  }

  tokened /* Return value */
}

为了使函数类型显式,您可以将匿名函数存储在函数类型变量中:

val f: (String => String) = line => { ... }
于 2013-05-06T11:57:35.750 回答