Действительно изо всех сил пытается разобраться в неизменном наборе с классом, который будет представлять собой набор бетонного типа. Я делаю это, чтобы попытаться создать хороший DSL.Расширение Scala Комплект с бетонным типом
Я хотел бы иметь класс Thing, и когда вы добавляете «вещи» вместе, вы получаете объект ThingSet, который расширяет Set.
class Thing(val name:String){
def +(other: Thing):ThingSet = new ThingSet() + other
}
Я просто не могу понять, как создать объект ThingSet. Я знаю, что мне нужно смешивать такие черты, как GenericSetTemplate, SetLike и т. Д. Но я просто не могу заставить его работать.
Пожалуйста, дайте мне некоторые указатели, поскольку я не могу найти ничего достаточно явного, чтобы учиться. Я попытался взглянуть на реализации BitSet и HashSet, но потерялся.
Ну ... вы забыли добавить 'this' в' ThingSet', чтобы вы могли исправить эту ошибку. :-) –