У меня есть набор, и я хочу неявно добавить другое значение в конец этого набора при его вызове.
Например, мне нужно что-то вроде этого для работы:
implicit def addToSet(set: Set[Int]) = set + 4
val s = Set(1, 2, 3)
println(s) // Set(1, 2, 3, 4)
Вариант использования:
Я создаю веб-сайт (используя PlayFramework), и у меня есть около 20-30 наборов ролей, которые соответствуют различным элементам функциональности. Для каждой страницы только определенные роли могут получить доступ к определенным функциям, поэтому каждый раз, когда мне нужно проверить привилегии роли (в псевдокоде: if(role.canAccess(/*name of page*/))
), я проверяю, содержится ли роль, в которой зарегистрирован пользователь, в том виде, как она содержится в Набор, который соответствует /*name of page*/
.
Я сейчас создаю суперпользователя, у которого есть доступ ко всем элементам функциональности на каждой странице, так что «роль» пользователя должна присутствовать в каждом наборе. Я не хочу делать это, вручную добавляя эту роль к каждому набору, потому что я хочу, чтобы она была масштабируемой и легко обслуживаемой, поэтому я надеялся на решение, которое просто добавит эту новую супер роль к каждому набору автоматически за кулисами. .
Я также открыт для неявных ответов, если они не изменяют исходные наборы, которые у меня уже есть.