Где Array получает метод toList - PullRequest
7 голосов
/ 12 марта 2011

При поиске я понимаю способ (или способ) преобразования массива в список примерно так:

val l = Array(1, 2, 3).toList

Но я не только не могу найти метод toList в документах API Array, я не могу найти его ни в чем, что кажется предком или унаследованной чертой Array.

Используя более новые 2.9 API документы, я вижу, что toList существует в следующих вещах:

ImmutableMapAdaptor ImmutableSetAdaptor IntMap List ListBuffer LongMap 
MutableList Option ParIterableLike PriorityQueue Stack StackProxy 
StreamIterator SynchronizedSet SynchronizedStack TraversableForwarder 
TraversableOnce TraversableOnceMethods TraversableProxyLike

Но я не могу понять, как toList получает от одного из них часть Array. Кто-нибудь может объяснить это?

1 Ответ

14 голосов
/ 12 марта 2011

toList и аналогичные методы, которые не встречаются в Java-массивах (в том числе наши старые избранное, map, flatMap, фильтр и т. Д.), Взяты из s.c.m.ArrayOps, которые получают в результате неявных преобразований в scala.Predef .Ищите неявные методы, имена которых заканчиваются на ArrayOps, и вы увидите, откуда происходит волшебство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...