Скала, параметризованные объекты - PullRequest
2 голосов
/ 27 июня 2010

Возможно ли получить:

object test[A](l: Int): List[A] = {
    ...
}

Вы знаете, что я имею в виду. Это возможно?

Ответы [ 2 ]

4 голосов
/ 27 июня 2010

Может быть, вы имеете в виду что-то вроде

object MyListMaker {
  def test[A](a0: A, n: Int): List[A] = (1 to n).map(_ => a0).toList
}

scala> MyListMaker.test("Fish",7)
res0: List[java.lang.String] = List(Fish, Fish, Fish, Fish, Fish, Fish, Fish)

Существует только одна копия объекта; если вы хотите создать метод, который делает что-то общее, добавьте к нему параметр типа (не объект).

2 голосов
/ 27 июня 2010

Черты или объекты не могут иметь параметры конструктора, а объекты не могут иметь параметры типа.

Объект фактически является единичным экземпляром класса. Поэтому у вас не может быть общего определения этого, потому что у него есть только одно имя.

Лучший вариант - определить метод внутри объекта, который возвращает нужный список.

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