Esecuzione di operazioni (in particolare su come aggiungere un elenco di) Long in Scala

StackOverflow https://stackoverflow.com/questions/1605175

  •  05-07-2019
  •  | 
  •  

Domanda

Ho provato una serie di tecniche, ma continuo a sbattere

(fragment of wtf.scala):3: error: overloaded method value + with alternatives
(Int)Int <and> (Char)Int <and> (Short)Int <and> (Byte)Int cannot be applied to (Long)

in un modo o nell'altro. Ad esempio, qui ci sono due funzioni per riprodurre il problema. sumInt funziona bene ... ma errori SumLong. Non capisco.

// compiles (and works) fine
def sumInt(list: List[Int]): Int = list.foldLeft(0)(_ + _)

// compile time error. no + define on Long? I don't get it
def sumLong(list: List[Long]): Long = list.foldLeft(0)(_ + _)
È stato utile?

Soluzione

Devi impostare 0 come costante Long : " 0L " ;:

scala> def sumLong(list: List[Long]): Long = list.foldLeft(0L)(_ + _)
sumLong: (List[Long])Long
scala> scala> sumLong(List(1L, 2L, 3L))
res2: Long = 6
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top