Рассмотрим аннотацию на основе макросов Scala, такую как @ memoise из macmemo .Для аннотации требуется два аргумента: максимальный размер кэша и время жизни, например,
@memoize(maxSize = 20000, expiresAfter = 2 hours)
Скажем, вы хотите создать аннотацию @cacheall
, эквивалентную @memoize(maxSize = Int.MaxValue, expiresAfter = 100 days)
, чтобы уменьшитьи имеют единую точку параметризации.
Существует ли стандартная схема для такого типа повторного использования?Очевидно,
class cacheall extends memoize(Int.MaxValue, 100 days)
не будет работать из-за разбора аргумента во время компиляции в макросе.