Вывод типа в кортежах? - PullRequest
0 голосов
/ 22 марта 2019
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 голосов
/ 22 марта 2019

Для указания типа вы можете определить псевдоним типа, например:

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))
0 голосов
/ 22 марта 2019

Вы можете попробовать

let http404Error:(Int,String) = (statusCode: 404, statusMessage: "Not found")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...