2016-09-14 2 views
0

Я новичок в Scala, и я изучал «контекст связан» с сообщениями. Но я обнаружил, что многие из них объясняют «контекстсвязь», используя пример ClassManifest. Например,Что такое ClassManifest в Scala?

def tabulate[T](len: Int, f: Int => T)(implicit m: ClassManifest[T]) = { 
    val xs = new Array[T](len) 
    for (i <- 0 until len) xs(i) = f(i) 
    xs 
} 

Я нахожу это странным, что неявный параметр m требуется, но никогда не используется в теле функции. Таким образом, я хотел бы знать, что такое ClassManifest и какова его связь с контекстом. Благодаря!

EDIT:

Я видел What is a Manifest in Scala and when do you need it? раньше, но он просит Manifest не ClassManifest, и нет никаких объяснений относительно ClassManifest в этой должности, поэтому я спрашиваю это похоже (но, IMO, а не дублировать) вопрос.

+3

Возможного дубликата [ Что такое манифест в Скала и когда он вам нужен?] (Http://stackoverflow.com/questions/3213510/what-is-a-manifest-in-scala-and-when-do-you-need-it) – manojlds

+0

@manojlds Извините, что я новичок в Scala, но является ли «манифест» тем же, что и «ClassManifest»? Спасибо –

+0

Обратите внимание, что оба устарели – dk14

ответ

2

Вы можете найти объяснение по поводу ClassManifest для старых версий scala (до 2.10) here. Пожалуйста, прочитайте все ответы, some of them explain not only Manifest but ClassManifest too:

Там существует также более слабая форма имени ClassManifest, который может быть построен из зная только класса верхнего уровня типа, без обязательно знать все его типов аргументов.

В Scala 2.11.8, 2,12-M4 ClassManifest устарела и стала alias to ClassTag:

type ClassManifest[T] = ClassTag[T] 

Это не рекомендуется, так как 2.10.0.

P.S. На самом деле this post от лестницы документации, которую вы, вероятно, читать полностью устарело, даже вид оценки (<%) описала есть deprecated too (достаточно долгое время), так что вы должны избегать их, а (using this simple trick if you really need them, but implicit views are not recommended in any form)

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