Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据另一代定义ScalaCheck生成器_Scala_Scalacheck - Fatal编程技术网

根据另一代定义ScalaCheck生成器

根据另一代定义ScalaCheck生成器,scala,scalacheck,Scala,Scalacheck,如何在中定义生成器来为给定块的字段生成随机数据。以下是脚手架代码。我需要一个表达式来替换???的帮助???。此表达式应生成Seq[Field],但该字段应使用已定义的genField函数生成 def blockGen(b: Block): Gen[Block] = for { id <- b.blockId //Use the same blockId as b fields <- ??? //Get the type from each field and call

如何在中定义生成器来为给定块的字段生成随机数据。以下是脚手架代码。我需要一个表达式来替换???的帮助???。此表达式应生成Seq[Field],但该字段应使用已定义的genField函数生成

def blockGen(b: Block): Gen[Block] = for {
    id <- b.blockId //Use the same blockId as b
    fields <- ??? //Get the type from each field and call genField
} yield Block(id, fields)
发电机


我相信你要找的是基因序列

此外,id不需要来自生成器,因为您所做的只是直接使用特定的值

def blockGen(b: Block): Gen[Block] =
  for {
    fields <- Gen.sequence[Seq[Field], Field](b.fields.map(fieldGen))
  } yield Block(b.blockId, fields)

顺便说一下,Gen.sequence与and非常相似。

我相信您要找的是Gen.sequence

此外,id不需要来自生成器,因为您所做的只是直接使用特定的值

def blockGen(b: Block): Gen[Block] =
  for {
    fields <- Gen.sequence[Seq[Field], Field](b.fields.map(fieldGen))
  } yield Block(b.blockId, fields)

顺便说一句,Gen.sequence与and非常相似。

我想知道为什么我看不到scaladoc中的sequence函数:这是一个非常糟糕的scaladoc设计,让所有人都感到困惑:单击左上角代表类的C,它将变为O,表示对象,显示上的方法。明白了,是O还是C。如果我知道这一点,我可能会更努力地解决这个问题:-。我想知道为什么我看不到scaladoc中的序列函数:这是一个非常糟糕的scaladoc设计,让所有人都感到困惑:单击左上角代表类的C,它将变为O,表示对象,显示上的方法。明白了O vs C。如果我知道这一点,我本可以更努力地解决这个问题:-。
val cx = new StringField("blockId", "CX")
val seg = StringField("segmentation", "ABC")
val ver = NumberField("version", "1.0")

val myBlock = Block(cx, Seq(seg, ver))
def blockGen(b: Block): Gen[Block] =
  for {
    fields <- Gen.sequence[Seq[Field], Field](b.fields.map(fieldGen))
  } yield Block(b.blockId, fields)