目前有一种通用类/结构没有数据类型的方法吗?
例如,我有两组api结果。
{
"status": 200,
"message": "Success"
}
{
"status": 200,
"message": "Success",
"result": <Some Result Here>
}
这是我的示例数据模型
public struct APIResult<Result> {
public let status: Int
public let message: String
public let result: Result?
// I want some kind of init like this
// note: I do data parsing a different way this is just an example
init(status: Int, message: String, result: Result?) {
self.status = status
self.message = message
self.result = result
}
}
结果1 是否有办法拥有自己的自定义初始值设定项,例如其他数据类型如何制作
extension APIResult where Result: SomeClass {
init(...) {
...
}
}
extension APIResult where Result == SomeStruct {
init(...) {
...
}
}
注意:我知道有一种不同的方法可以为protocol
APIResult
创建一个仅包含status
和message
的方法,我只是问这样做是否有不同的方式。
答案 0 :(得分:3)
我刚才记得实际上Swift
实际上内置了EmptyResult
课程,并且它被称为Void
或()
(正确的CS)名称是Unit type
)。
所以,你的扩展应该是这样的:
extension APIResult where Result == () {
init(status: Int, message: String) {
self.init(status: status, message: message, result: nil)
}
}