有一段时间,我一直在努力学习LazyModule
抽象类和diplomacy
包。最简单的结论是,LazyModule的子类的对象只有在第一次被访问时才被实例化。(如果我错了,请纠正我)
在RocketTile.scala中,LazyModule
用法有多个示例,例如:scala lazy val module = new LazyModuleImp(this) {...
当值未声明为lazy
但仍为其分配LazyModule
时会发生什么情况
换句话说,创造的价值的“懒惰”是来自于它继承自LazyModule
,还是我们必须把lazy
放在前面才能获得预期的行为?
发布于 2018-06-20 04:30:20
我不能详细解释,但我会提供这个:lazy
意味着Scala语言延迟初始化。只有在需要时才会执行/评估lazy val module
。它适用于所给出的用例,因为硬件描述仅在设计配置完成后评估。
我前段时间写了这篇博文。它可能提供额外的洞察力:
http://blog.edmondcote.com/2017/04/parameters-and-lazy-modules.html
https://stackoverflow.com/questions/49340047
复制相似问题