我想如下生成任意列表:Scalacheck任意使用泛型
scala> def validPairs[T] = Arbitrary.arbitrary[List[(T, Option[T])]] suchThat(!_.isEmpty)
<console>:8: error: could not find implicit value for parameter a: org.scalacheck.Arbitrary[List[(T, Option[T])]]
def validPairs[T] = Arbitrary.arbitrary[List[(T, Option[T])]] suchThat(!_.isEmpty)
任何想法,我做错了什么?使用混凝土类型不需要我定义隐式参数。
scala> def validPairsString = Arbitrary.arbitrary[List[(String, Option[String])]] suchThat(!_.isEmpty)
validPairsString: org.scalacheck.Gen[List[(String, Option[String])]]
这是使用Scala的2.9.2和scalacheck 1.10.0
在此先感谢。
发现了一个不同的列表上的答案: 高清validPairs [T:任意] = ... (告诉它,你将提供一个(可能是隐含的)的方式来产生T.) – rubanm 2013-04-30 16:27:50