Каков правильный способ объявления пустого кортежа?
Для массивов: var myArr : [String] = []
Для кортежей: var myTuple: (key: String, val: Int) = ()?
Есть ли правильный способ достичь этого?
Ответ 1
Не существует такой вещи, как "незаполненное" значение кортежа. Другими словами, вы не создаете пустой кортеж, а затем добавляете к нему значения позже. Важно помнить, что кортежи не являются коллекциями, такими как Array или Dictionary. Кортежи являются структурированными типами. Например, вы не можете перебирать кортеж с циклом for. В вашем примере myTuple - это одно значение, которое содержит String и Int.
Кортеж похож на безымянную структуру по требованию, такую как следующая структура, но если бы она была безымянной:
struct MyStruct {
let key: String
let val: Int
}
Если вы хотите смоделировать отсутствующее значение кортежа, вы должны сделать тип всего кортежа необязательным. Например: