簡體   English   中英

生成隨機大小的Scala列表

[英]Generating a Scala list of random size

我正在使用創建一個scala json:

lazy val genDefaultValue: Gen[List[JsonPatch]] = {
listOf(
  genJson("/primary", true),
  genJson("/secondary", true),
  genJson("/fallback", true)
)
}

這將僅創建帶有項目之一的隨機json。 我無法使用上述3個列表元素創建隨機大小的列表。 ListSize可以是1到3之間的任何值。

genJson是一個內部函數,當通過預期類型的​​路徑Gen [T]時會創建一個Json。

一種選擇如下:

  1. 使用Random.shuffle()對列表重新排序(如果您希望每次的順序都不同)。
  2. 在(可以隨機播放的)列表中調用.take(x) ,其中x是1到3之間的隨機值。

假設您使用的是ScalaCheck,並且genJson返回Gen[JsonPatch]的實例,以下代碼為JsonPatch實例列表定義了一個生成器:

lazy val genDefaultvalue =
   Gen.listOf(Gen.oneOf(genJson("/primary", true),
                        genJson("/secondary", true),
                        genJson("/fallback", true)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM