考虑一个基于 Scala 宏的注释,例如来自macmemo的@memoise。注释需要两个参数:最大缓存大小和生存时间,例如,
@memoize(maxSize = 20000, expiresAfter = 2 hours)
假设您要创建一个@cacheall
等效于的注释,@memoize(maxSize = Int.MaxValue, expiresAfter = 100 days)
以减少样板文件并具有单点参数化。
这种类型的重用是否有标准模式?明显地,
class cacheall extends memoize(Int.MaxValue, 100 days)
由于宏中的编译时参数解析而无法工作。