gpt4 book ai didi

Json 提供的类型生成不适用于 "with"

转载 作者:行者123 更新时间:2023-12-01 12:19:55 25 4
gpt4 key购买 nike

下面是一个片段,展示了我将要谈论的内容:

open FsCheck
open FsCheck.Gen
open FSharp.Data

type Test = JsonProvider<"""{"collection": [ { "Name": "Rob", "Age": 3 } ] } """>
let testGen () =
gen {
let! name = Arb.generate<string>
let! age = Arb.generate<int>
let colObj = Test.Collection(name, age)
return Test.Root([|colObj|])
}

let specialTestGen () =
gen {
let! test = testGen ()
let item = test.Collection.[0]
let foo = item.Name
let changedItem = {item with Name = "Chris"}
return {test with test.collection = [|changedItem|]}
}

我正在尝试生成一个包含一些字段的生成器。我可以将 out in 分配给 foo 集合实例的名称,但出于某种原因,我无法构建该结构的另一个略微修改的版本。它告诉我 item 没有名为 Name 的属性,当在它前面的行中清楚显示时,它确实有。出于某种原因,我不能在这些库中使用“with”语法吗?

最佳答案

类型提供程序目前只能提供普通的 .NET 类型,不能提供 F# 记录和可区分的联合。 {x with ...} 语法仅适用于 F# 记录。

关于Json 提供的类型生成不适用于 "with",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45198036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com