访问元组的成员
Accessing a member of a tuple
我很好奇如果某些成员具有可选类型,我如何访问元组的成员
let serverResponse: (Int, String?, String?) = (statusCode: 255, message: "Welcome", errorMessage: "Error")
print(serverResponse.message)
我收到一个错误
error: value of tuple type '(Int, String?, String?)' has no member
'message'
为此你最好使用 struct
struct Response {
let statusCode:Int
let message,errorMessage:String?
}
那你可以做
let item = Response(statusCode: 255, message: "Welcome", errorMessage: "Error")
print(item.message)
但是与元组一起使用
print(serverResponse.1) // statusCode = 0 , message = 1 , errorMessage:String = 2
通过索引($0、$1 等)访问它们或扩展类型。
let serverResponse: (statusCode: Int, message: String?, errorMessage: String?) = (statusCode: 255, message: "Welcome", errorMessage: "Error")
您的代码存在问题,您定义的 (Int, String?, String?)
到 (statusCode: Int, message: String, errorMessage: String)
是可以互换的。
如果您将变量的类型定义留空,类型推断应该会为您提供正确的类型。
let response = (statusCode: 255, message: "Welcome", errorMessage: "Error")
print(response.message)
或者,如果您想定义类型,请确保类型实际上是 (statusCode: Int, message: String, errorMessage: String)
。
let response: (statusCode: Int, message: String, errorMessage: String) = (statusCode: 255, message: "Welcome", errorMessage: "Error")
print(response.message)
您也可以使用元组解构语法,
let (_, message, _) = (statusCode: 255, message: "Welcome", errorMessage: "Error")
print(message)
我很好奇如果某些成员具有可选类型,我如何访问元组的成员
let serverResponse: (Int, String?, String?) = (statusCode: 255, message: "Welcome", errorMessage: "Error")
print(serverResponse.message)
我收到一个错误
error: value of tuple type '(Int, String?, String?)' has no member 'message'
为此你最好使用 struct
struct Response {
let statusCode:Int
let message,errorMessage:String?
}
那你可以做
let item = Response(statusCode: 255, message: "Welcome", errorMessage: "Error")
print(item.message)
但是与元组一起使用
print(serverResponse.1) // statusCode = 0 , message = 1 , errorMessage:String = 2
通过索引($0、$1 等)访问它们或扩展类型。
let serverResponse: (statusCode: Int, message: String?, errorMessage: String?) = (statusCode: 255, message: "Welcome", errorMessage: "Error")
您的代码存在问题,您定义的 (Int, String?, String?)
到 (statusCode: Int, message: String, errorMessage: String)
是可以互换的。
如果您将变量的类型定义留空,类型推断应该会为您提供正确的类型。
let response = (statusCode: 255, message: "Welcome", errorMessage: "Error")
print(response.message)
或者,如果您想定义类型,请确保类型实际上是 (statusCode: Int, message: String, errorMessage: String)
。
let response: (statusCode: Int, message: String, errorMessage: String) = (statusCode: 255, message: "Welcome", errorMessage: "Error")
print(response.message)
您也可以使用元组解构语法,
let (_, message, _) = (statusCode: 255, message: "Welcome", errorMessage: "Error")
print(message)