scala运行抱 forward reference extends over definition of value xxx 异常


object T1_highOrder01 {
  def main(args: Array[String]): Unit = {
    println("---------------------使用高阶函数------------------")
    val t2: List[Int] = List(4, 6, 23)
    val list2: List[Int] = t2.map(c2)
    println(list2)
   
    def c2(i:Int):Int={
      i*2
    }
    
  }

}

如上述代码运行抛出:

forward reference extends over definition of value list2

原因:方法体不能放在main主函数中,也就是c2不能再main中

改为如下:


object T1_highOrder01 {
  def main(args: Array[String]): Unit = {
    println("---------------------使用高阶函数------------------")
    val t2: List[Int] = List(4, 6, 23)
    val list2: List[Int] = t2.map(c2)
    println(list2)
   //---------------------使用高阶函数------------------
   //List(8, 12, 46)
  }
  //函数体
  def c2(i:Int):Int={
      i*2
    }  
}