выбор бесформенного HList вместо класса case

Каковы преимущества использования бесформенного HList по сравнению с классом case в Scala? В каких ситуациях вы не хотели бы использовать HList?


person James McCabe    schedule 29.09.2014    source источник
comment
Вы можете переформулировать это как классы case и кортежи, и ответ будет практически таким же.   -  person Travis Brown    schedule 29.09.2014


Ответы (1)


Вы можете сначала прочитать эти вопросы:

По сути, case classes — это tuples внизу, которые, в свою очередь, соответствуют Java classes. Однако HList является структурой данных List like. Таким образом, вам, возможно, придется пройтись по списку, чтобы получить доступ к конкретному члену HList. Это дороже, чем использование члена класса case или члена кортежа.

person tuxdna    schedule 29.09.2014
comment
также переключение с классов case на расширяемые записи может повлиять на производительность, см. следующий тест: github.com/eugengarkusha/ - person ievgen.garkusha; 19.05.2017