我对84中的FPiS书中的组合器有疑问。
object RNG {
type Rand[+A] = RNG => (A, RNG)
}
val int: Rand[Int] = _.nextInt
如何解释type Rand[+A] = RNG => (A, RNG)
,_.nextInt
下划线的含义是什么?
答案 0 :(得分:4)
type
定义是类型别名。这意味着您可以在Rand[A]
的任何地方替换RNG => (A, RNG)
。例如,Rand[Int] = RNG => (Int, RNG)
。
现在,由于我们知道int
是一个带RNG
的函数,我们可以将其定义为匿名函数,例如(r: RNG) => r.nextInt
(您可能会看到nextInt
特征中RNG
的定义。 _
是占位符,完全相同,无需为参数命名。