【发布时间】:2019-11-21 02:51:57
【问题描述】:
考虑一个基于 Scala 宏的注解,例如来自 macmemo 的 @memoise。注释需要两个参数:最大缓存大小和生存时间,例如,
@memoize(maxSize = 20000, expiresAfter = 2 hours)
假设您要创建一个等效于@memoize(maxSize = Int.MaxValue, expiresAfter = 100 days) 的@cacheall 注释,以减少样板文件并具有单点参数化。
这种类型的重用是否有标准模式?很明显,
class cacheall extends memoize(Int.MaxValue, 100 days)
由于宏中的编译时参数解析而无法工作。
【问题讨论】:
标签: scala annotations scala-macros scala-macro-paradise