繁体   English   中英

Scala错误:发现类型不匹配:(Int,Int)=>需要Int:Ordering [Int]

[英]Scala Error: type mismatch found :(Int, Int) => Int required: Ordering[Int]

在Scala中运行以下代码时,抛出错误Type不匹配

private def currentOrd: Ordering[Int] = 
    if (isAscending) (x: Int, y: Int) => x+y
    else (x: Int, y: Int) => y - x

错误的含义:您的代码说应该返回Ordering[Int] ,但是它返回一个函数。 在Scala 2.12中,函数文字可以自动转换为像Ordering这样的单抽象方法特征(您的代码将被编译),但不能在2.11或更早版本中转换。

与此不同的是, (x: Int, y: Int) => x+y不太可能是正确的。 如果您的意思是(x: Int, y: Int) => x - y那么编写它的更好方法(在以前的版本中也适用)是

if (isAscending) Ordering.Int else Ordering.Int.reverse

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM