2014-10-11 3 views
3

Как A превращается в Nothing?Страдает от ничего

def seq2map[A](src: Seq[A]): Map[A, A] = { 
    def pair = for { 
     f <- src.headOption 
     s <- src.headOption 
    } yield (f, s) 
    Stream continually pair takeWhile(_ isDefined) toMap 
} 

Ошибка: Выражение типа Map[Nothing, Nothing] не соответствует ожидаемому типу Map[A, A]

Спасибо!

ответ

4

я

<console>:12: error: Cannot prove that Option[(A, A)] <:< (T, U). 
      Stream continually pair takeWhile(_ isDefined) toMap 
                 ^

потому

scala> val src = (1 to 10).toSeq 
src: scala.collection.immutable.Range = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 

scala>  def pair = for { 
    |   f <- src.headOption 
    |   s <- src.headOption 
    |  } yield (f, s) 
pair: Option[(Int, Int)] 

не пара, но вариант.

scala> (Stream continually pair takeWhile (_.isDefined)).flatten 
res0: scala.collection.immutable.Stream[(Int, Int)] = Stream((1,1), ?) 

- это поток пар.

Ожидание начала игры.

+0

Ohhhhh XD Спасибо !!! 11oneone –

Смежные вопросы