Введите безопасный метод цепочки, который не позволяет повторять операции
Я хочу реализовать метод цепочки, как в этих вопросах:
Лучшая практика для реализации черты 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 отражений, но он все еще немного неясен для меня.
Помощь будет оценена! знак равно