2014-09-10 3 views
0

Я хочу, чтобы определить функцию, как этот параметр типасуществование типа Scala типа класса

def showList(items: Seq[_ : Show]) = {...} из Seq любого типа, который имеет контекст, связанный Show

Таким образом, я мог бы назвать showList(Seq(1, "abc")).

Как следует объявить метод?

ответ

0
def showList[A: Show](items: Seq[A]) = { ... } 

или более явно (с тем преимуществом, что экземпляр класса типа непосредственно доступный)

def showList[A](items: Seq[A])(implicit ev: Show[A]) = { ... } 

Для конкретного случая, так как коллекция Scala мономорфна, вам потребуется Show[Any] экземпляра.

+0

Мы не можем назвать 'showList (Seq (1, 'abc'))' this way. – jilen

+0

@jilen, какова конкретная ошибка? У вас есть экземпляр 'Show' для' Int' и 'String' в области видимости? –

+0

@jilen также '' abc'' недействителен scala. Вы имеете в виду '' abc "'? –

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