簡體   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