Отказ от ответственности: Я не уверен, что я действительно понимаю границы контекста шрифта ... или что-то еще.Любое с привязкой к контуру
Возможно ли определить тип в scala, который является экземпляром TypeClass, где тип может быть Any, если этот тип подчиняется привязке к типу типа.
Например, у меня есть класс типов Printable[T]
печать является классом типов для вещей, которые могут быть напечатаны, и это полезно в качестве контекста типа, связанного, потому что я мог бы иметь класс типов, которые могут принимать любой тип до тех пор, как это версия для печати, например:
class SomeContainer[T: Printable](value: T)
Из того, что я понимаю библиотеку коллекций использует контекст типа ограничивающий, как это для вещей, которые можно заказать, суммируется и т.д.
Но что я хочу type PrintableAnyCollection = SomeCollection[_: Printable]
Это набор значений, которые могут быть разных типов, если все эти типы подчиняются типу привязки к тексту, что существует Printable[T]
для w/e этого типа.
TLDR:
Collection[Any]
почти делает то, что я хочу, потому что он может содержать различные типы
Collection[T: Printable]
Почти делает то, что я хочу, потому что навязывает, что вещи в коллекции печати, но приводит к тому, что сбор хранит только один тип.
Collection[_: Printable]
и/или Collection[Any: Printable]
выглядят как они описывают то, что я хочу, но не являются допустимыми синтаксисом.
Этот ответ в конечном итоге заставил меня задать гораздо больше вопросов, но в конечном итоге привел к мне приемлемое решение. Другой поток, с которым вы связались, - отличное обсуждение более широкой проблемы ограничений контекста в гетерогенном списке в Scala. В конечном итоге я решил свою проблему, отказавшись от typeclasses и используя подтипирование, которое было очень неэлегантным, потому что библиотека, с которой я взаимодействую, использует классы типов, и поэтому мне нужна куча прокладок, но с использованием классов типов с классами классов и наследованием просто полностью взорвал мой бюджет сложности. – jangoolie