Вопрос по type-erasure, scala, scala-2.10 – Как новые Scala TypeTag улучшают (устарели) Манифесты? [Дубликат]

28

Possible Duplicate:
Scala 2.10: What is a TypeTag and how do I use it?

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

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

TypeTags API SIP: Self-cleaning macros Metaprogramming in Scala
Это мой первый вопрос в StackOverflow, так что вы можете сказать мне, почему вы думаете, что не подходит в этом контексте? jeslg
Это интересная вещь, но больше вопрос списка рассылки в его нынешней формулировке. По крайней мере, добавьте несколько ссылок на то, что вы читали. Travis Brown
Я добавил ссылки. Спасибо! jeslg

Ваш Ответ

1   ответ
23

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

TypeTags являются типамиas the compiler understands them, Не "как" компилятор понимает их, но & quot; как & quot; компилятор понимает их - сам компилятор использует TypeTags. Это не 1-к-1, это просто 1. :-)

@TonyMorris - Каковы последствия того, что Манифест не является экспоненциальным функтором? Я признаю, что даже не знаю, что это такое. Спасибо
@KevinMeredith Я предполагаю, что это означает, что Манифесты не могут представлять все типы для параметров любого данного типа.
Это объяснение стало намного более понятным после понимания Манифестов.
Я думаю, что это хороший способ увидеть это. jeslg
На самом деле, это хуже, чем это. Манифест даже не экспоненциальный функтор. Это имеет довольно серьезные последствия для API, которые его используют, в той степени, в которой его никогда не следует использовать.

Похожие вопросы