在元组中输入推论吗?

时间:2019-03-22 19:31:17

标签: ios swift tuples

let http404Error = (statusCode: 404, statusMessage: "Not found")
print(http404Error.0, http404Error.1)

我对元组有一些疑问和“问题”:

问题1:
但是,如果我希望statusCode仅是一个Int和一个Int,该怎么办?
因为“ statusCode:Int = 404”似乎不起作用?

问题2:
如果我要缩短“ print(http404Error.0,http404Error.1)”部分怎么办?
是否有一种简短的编写方式,例如print(http404Error。[0,1])?

感谢您的帮助:)

2 个答案:

答案 0 :(得分:0)

您可以尝试

let http404Error:(Int,String) = (statusCode: 404, statusMessage: "Not found")

答案 1 :(得分:0)

要指定类型,可以定义类型别名,例如:

typealias HttpStatus = (statusCode: Int, statusMessage: String)
let http404Error     = HttpStatus(403, "Not found")
print(http404Error.0, http404Error.1)

为缩短打印语句,我认为没有简单的方法可以做到这一点。您可以做的一件事是,您可以创建一个自定义函数,该函数将元组作为参数,格式化值并返回一个字符串。

func getStatus(_ status: HttpStatus) -> String {
    return "\(status.statusCode) \(status.statusMessage)"
}

print(getStatus(http404Error))