gpt4 book ai didi

具有不同类型的 Swift Codable

转载 作者:行者123 更新时间:2023-11-30 10:39:31 32 4
gpt4 key购买 nike

我有一个 API,它以前缀表示法接收查询。例如(+ 1 2)这可以递归地完成,例如(+ 1 (- 1 2))

准确地说,所需的 json 如下所示:

{
"query":[
{
"operator":"AND",
"operands":[
{
"operator":"EQ",
"operands":[
"name",
"albert"
]
}
]
}
]
}

操作数可以是多级深度。

我现在的目标是创建一个确认可编码的结构(因为我想利用可编码和可解码的优势)。

我上次的尝试是这样的:

struct OperandImpl<T:Codable>: Codable {
let op: BinaryOperator
let operands: [T]
}

struct Request<T:Codable>: Codable {
let query: OperandImpl<T>
}

let name = OperandImpl<String>(op: .equal, operands: ["name", "Albert"])
let query = OperandImpl<OperandImpl>(op: .and, operands: [name])

但这会因 SIGFAULT 崩溃。

有什么想法如何实现这个递归结构吗?

最佳答案

我无法使用此代码片段重现您的崩溃。我在 Playground 和项目中尝试过。但无论如何OperandImpl<OperandImpl>如果你尝试的话,感觉很奇怪:

let query = OperandImpl<OperandImpl<String>>(op: .and, operands: [name])

您还有 SIGFAULT 吗?

关于具有不同类型的 Swift Codable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57164828/

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