Введите безопасный метод цепочки, который не позволяет повторять операции

Я хочу реализовать метод цепочки, как в этих вопросах:

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

Помощь будет оценена! знак равно

Ответы на вопрос(2)

Ваш ответ на вопрос