Выполнение операций над (в частности, как добавить список) Long в Scala - PullRequest
2 голосов
/ 22 октября 2009

Я перепробовал несколько техник, но продолжаю сталкиваться с

(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)

так или иначе. В качестве примера, вот две функции для воспроизведения проблемы. sumInt работает нормально ... но sumLong ошибок. Я не понимаю.

// 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)(_ + _)

1 Ответ

2 голосов
/ 22 октября 2009

Вам нужно сделать константу 0 a 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...