2012-05-09 4 views
28

Можно создать дубликат:
Scala 2.10: What is a TypeTag and how do I use it?Как новый Scala TypeTags улучшает (устаревшие) манифесты?

Я читал о новых TypeTags, которые приходят вместе с новым Reflection API. Кажется, что Manifests предполагается заменить этой новой концепцией. Может ли кто-нибудь опубликовать некоторые примеры кода, чтобы показать преимущества?

Некоторые ссылки:

+0

Это интересный материал, но скорее вопрос списка рассылки в его текущей формулировке. По крайней мере, добавьте некоторые ссылки на то, что вы читали. –

+0

Это мой первый вопрос в StackOverflow, так что вы можете сказать мне, почему, по вашему мнению, не подходит в этом контексте? – jeslg

+0

Я добавил ссылки. Спасибо! – jeslg

ответ

22

Манифесты являются ложью. Он не знает дисперсии (предполагает, что все параметры типа являются со-вариантами), и он не поддерживает зависимые от пути, экзистенциальные или структурные типы.

ТипТаги являются типами , поскольку компилятор их понимает. Не «как» компилятор их понимает, но «как» компилятор их понимает - сам компилятор использует TypeTags. Это не 1-к-1, это всего лишь 1. :-)

+0

Я думаю, что это хороший способ увидеть это. – jeslg

+0

Это объяснение стало более понятным после понимания Манифестов. – Grogs

+0

На самом деле, это хуже. Манифест не является даже экспоненциальным функтором. Это имеет серьезные последствия для API, которые используют его, в той мере, в какой его никогда нельзя использовать. –