Как использовать кортежи в Swift? | Как управлять несколькими типами значений в одной переменной?

Начало работы с кортежами

В Swift разработка кортежей очень важна. В одном объекте легко представить несколько типов представления значений. есть два типа типов: именованные типы и составные типы.

Изначально я не знал, как управлять несколькими типами значений в одной переменной? Затем у меня есть кортежи и все такое

Создайте свой первый кортеж -

Это постоянная переменная, содержащая несколько типов значений String и Integer.

let product = (iphone: “X”, price: 1000)

Доступ к этим значениям -

Есть два способа доступа -

  • Доступ как Array по порядковому номеру

  • Доступ с меткой имен или значений

Если вы не укажете метку или имя кортежа (простой)

let ranks = (1, 33)

в этом случае мы можем получить доступ через номера индекса -

ranks.0  // 1 
ranks.1  // 33

Можно ли изменить значение кортежа? 🤔

Только нам нужно сделать тип от let до var

Давайте посмотрим, как с этим бороться -

var product = (iphone: "X", price: 1000)
print(product)         //(iphone: "X", price: 1000) //current value
product.price = 1200   //Change value 
print(product)         //(iphone: "X", price: 1200) // updated value

Расширенные кортежи

Давайте создадим кортежи с несколькими типами значений, например Array, Dictionary, String, Int, Bool

let dataProviders = (["name": "Joy"], ["John", "Kelly"], "Joy",  1000, false)
//Output
dataProviders.0    // ["name": "Joy"]
dataProviders.1    // ["John", "Kelly"]
dataProviders.2    // "Joy"
dataProviders.3    // 1000
dataProviders.4    // false

Давайте попробуем другой способ -

let dataProvider = (dic: ["name": "Joy"], array : ["John", "Kelly"], name: "Joy", number: 1000, status: false)
//Output 
dataProvider.dic    // ["name": "Joy"]
dataProvider.array  // ["John", "Kelly"]
dataProvider.name   // "Joy"
dataProvider.number // 1000
dataProvider.status // false

Кортежи определяются с конкретными типами -

var values: (dic:[String: Any], array: [String], name: String, number: Int) = (dic: ["name": "Joy"], 
                array : ["John", "Kelly"], 
                name: "Joy", 
                number: 10)

получить вывод для этого кортежа:

values.dic    // ["name": "Joy"]
values.array  // ["John", "Kelly"]
values.name   // "Joy"
values.number // 1000

Давай попробуем с typealias

typealias Mountain = (dic:[String: Any], array: [String], 
                      name: String, number: Int)
var values: Mountain = (dic: ["name": "Joy"], array : ["John", "Kelly"], name: "Joy", number: 10)
//Output -
values.dic    // ["name": "Joy"]
values.array  // ["John", "Kelly"]
values.name   // "Joy"
values.number // 1000

Мы можем использовать это с функциями -

func getPhoneInfo() -> (name: String, price: Float){
     return (name: "iPhone X", price: 1000)
}
//Output
getPhoneInfo().name // "iPhone X"

с typealias

func getPersonInfo() -> Mountain{
     return (dic: ["name": "Joy"], array : ["John", "Kelly"], 
             name: "Joy", number: 10)
}
//Output
getPersonInfo().array // ["John", "Kelly"]

Заключение

Наконец, вместо объявления нескольких переменных мы стали лучше использовать кортежи в программе Swift. С его помощью мы можем создать более понятный и читаемый код. В этом разделе мы рассмотрели от базовых до расширенных кортежей. Довольно легко функционировать, объявление определенного типа с изменяемыми и неизменяемыми кортежами. Кроме того, в этой теме я рассмотрел значения create, read и modify кортежей. 🚀🎉

Мы создали очень простые кортежи с String & Int, а затем создали несколько расширенных кортежей с Array, Dictionary, String, Int, Bool .

Спасибо за чтение 🙌🏼

Если у вас есть вопросы по этому руководству? | Если вы думаете, что можете сделать более простой способ или немного больше дополнительных вещей с этим материалом, пожалуйста, дайте мне знать вопросы, отзывы или комментарии в Twitter