Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 遗传尺度下的方差_Scala - Fatal编程技术网

Scala 遗传尺度下的方差

Scala 遗传尺度下的方差,scala,Scala,如果特征函数2签名为 trait Function2[-T1, -T2, +R] extends AnyRef 为什么我不能创建这样的函数 val f2 : (String, String) => Int = new Function2[String, String, Int] { def apply(s1 : String, s2 : String) = s1.length + s2.length } val listOfFullNames : List[(Any

如果特征函数2签名为

trait Function2[-T1, -T2, +R] extends AnyRef
为什么我不能创建这样的函数

  val f2 : (String, String) => Int = new Function2[String, String, Int] {
    def apply(s1 : String, s2 : String) = s1.length + s2.length
  }
  val listOfFullNames : List[(Any, Any)] = List(("Mark","Smith"), ("Kim","Hughes"), ("Zoe","Zaldana"), ("Matt","Damon"))

  val output3 = listOfFullNames.map(x => f2(x._1, x._2))
像这样使用它

  val f2 : (String, String) => Int = new Function2[String, String, Int] {
    def apply(s1 : String, s2 : String) = s1.length + s2.length
  }
  val listOfFullNames : List[(Any, Any)] = List(("Mark","Smith"), ("Kim","Hughes"), ("Zoe","Zaldana"), ("Matt","Damon"))

  val output3 = listOfFullNames.map(x => f2(x._1, x._2))

前两个类型参数中的反差表示
Function2[Any,Any,Int]
Function2[String,String,Int]
的子类型,因为将两个
any
值映射为
Int
的任何函数也可以应用于两个
String
值,因此也可以被视为一个函数
(String,String)=>Int

,因为您试图用不起作用的超类型替换子类型