Я хочу реализовать цепочку методов, как в этих вопросах:
Рекомендации по реализации трейта Scala, поддерживающего цепочку методов а> ;
Scala DSL: связывание методов с методами без параметров
Однако я хочу, чтобы после использования "свойства" его больше нельзя было использовать. Например, предположим, что у меня есть класс «Myclass», для которого я хочу разрешить использование определения «foo» и определения «bar» не более одного раза, и меня не волнует окончательный возвращаемый тип. Таким образом:
val c = new Myclass
c foo //ok !
c foo bar // ok!
c foo foo // refuse to compile
c foo bar foo //refuse to compile
Я борюсь с этой проблемой некоторое время, и мое зрение начинает становиться нечетким! Однако я пытался использовать неявные классы, нужно ли им анализировать объекты, которые не использовали связанное свойство, и я не могу найти, как это сделать, нужно ли им «потреблять» свойство, удаляя его из доступного свойства объекта, и, опять же, я не могу найти, как это сделать.
В настоящее время я ищу API отражения, но для меня это все еще немного неясно.
Помощь приветствуется! знак равно