[英]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.