这是在凿子库里面
object Module {
// returns a new Module of type T, initialized with a Parameters instance if _p !=None.
def apply[T<:Module](c: =>T)(implicit _p: Option[Parameters] = None):T
}
我不明白
=
登录参数。它代表什么?
最佳答案
=
在 (implicit _p: Option[Parameters] = None)
正在分配默认值 None
到参数_p
.这意味着除非另有说明,否则没有 Parameter
分配给 _p
的实例.
以防万一您询问 =>
在 (c: =>T)
, =>
is 表示第一个参数c
是对返回 T
实例的函数的引用, 其中 T
是 Module
的子类.
这里使用了 Scala 的许多惯用特性:函数柯里化(Currying)、隐式参数、函数作为该语言的一等公民。花一点时间来学习这些东西的语法是值得的。查看 Chisel 的 generator-bootcamp tutorial特别是第 3.2 和 3.3 节,介绍了 Chisel 利用 Scala 语法的一些方式
关于chisel - Chisel 中的高级参数化手册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52375772/