Swift 如何在结构中将var的返回类型定义为空数组?
在API调用期间,我得到的变量为Swift 如何在结构中将var的返回类型定义为空数组?,swift,struct,swift5,Swift,Struct,Swift5,在API调用期间,我得到的变量为[] 那么如何定义类型为空数组的变量呢 { "name": "Alex", "hobbies": [] } 假设数组为Int: struct User{ var name : String var hobbies:[Int] } 用法: let user = User(name: "Test", hobbies: [0,1,2]) 尽管从API响应的数组为空,但它必须有自己的类型 我相信您不能声明为无类型数组。至少,您可以将其声明为
[]
那么如何定义类型为空数组的变量呢
{
"name": "Alex",
"hobbies": []
}
假设数组为Int:
struct User{
var name : String
var hobbies:[Int]
}
用法:
let user = User(name: "Test", hobbies: [0,1,2])
尽管从API响应的数组为空,但它必须有自己的类型 我相信您不能声明为
无类型数组
。至少,您可以将其声明为
var嗜好:[Any]
如果您不知道响应的类型是否尝试过此操作
struct User {
var name : String
var hobbies:[String]?
}
当我尝试
var:[Any]
时,我发现“无法自动合成'Decodable',因为'[Any]'不符合'Decodable'”错误如果您使用的是Decodable
,请确保您知道正确的响应类型。尝试与后端开发人员交谈,了解爱好的类型。例如,如果您的后端开发人员说了业余爱好
的[String]类型,那么只需输入var业余爱好:[String]
,但是如果业余爱好[]
不包含任何数据,那么我该怎么办呢???@USB您可以输入任何而不是Int当我尝试var业余爱好时:[any]我得到的“无法自动合成‘可解码的’,因为”[any]'不符合'可解码''错误您的爱好密钥不会总是空的,对吗?你将在嗜好中拥有什么类型的数据?嗜好应该是它不为空时的类型。例如,[Hobby]的值可以为[](空数组)。
struct User {
var name : String
var hobbies:[String]?
}