Общий способ ссылки на «список» в Scala? - PullRequest
4 голосов
/ 13 февраля 2011

Как я могу ссылаться на ArrayBuffer и Vector более общим способом?

Например - одна из моих функций принимает Vector в качестве аргумента, а другая возвращает ArrayBuffer.Что такое обычный «интерфейс», который я могу использовать?

Например, в Java я мог бы использовать интерфейс List или Collection для их передачи.

Ответы [ 2 ]

9 голосов
/ 13 февраля 2011

См. здесь для обзора отношений наследования между классами коллекций.

Вы увидите, что IndexedSeq является общей чертой как для ArrayBuffer, так и для Vector.

РЕДАКТИРОВАТЬ: IndexedSeq против Seq:

Из документа: Indexed sequences do not add any new methods wrt Seq, but promise efficient implementations of random access patterns. Это означает, что в этом контексте вы также можете использовать Seq, поскольку реализации будут предоставлены ArrayBuffer и Vector в любом случае.

3 голосов
/ 13 февраля 2011

Я бы использовал SeqLike или более общий TraversableOnce , который также применяется для Map с.

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