Я начинаю учиться swift
, следуя iBook The Swift Programming Language
on Swift, предоставленной Apple. В книге сказано, что для создания пустого словаря следует использовать то [:]
же, что и при объявлении массива []
:
Я объявил пустой массив следующим образом:
let emptyArr = [] // or String[]()
Но при объявлении пустого словаря я получаю синтаксическую ошибку:
let emptyDict = [:]
Как мне объявить пустой словарь?
ios
swift
dictionary
z22
источник
источник
array :() dictionary :{}
операторах печати консолиlet arr = [] let dict = [:] println("array :\(arr)") println("dictionary :\(dict)")
Ответы:
Примечание : если вы собираетесь со временем изменять содержимое словаря, объявите его как
var
(переменную). Вы можете объявить пустой словарь какlet
(константу), но это бессмысленно, если у вас есть намерение изменять его содержимое с течением времени, поскольку константа не может быть изменена после ее инициализации.Старый ответ :
Создание пустого словаря типа
<String, String>
будет выглядеть следующим образом:источник
var
как я вам предлагал: developer.apple.com/library/prerelease/ios/documentation/Swift/…__NSDictionaryI
. Попробуйте добавить элемент к этому,emptyDict
и он не удастся во время компиляции.Вы не можете использовать
[:]
если информация о типе не доступна.Вы должны предоставить это явно в этом случае:
var
означает, что он изменчив, поэтому вы можете добавлять в него записи. И наоборот, если вы сделаете этоlet
то вы не сможете его далее модифицировать (let
означает постоянное)Вы можете использовать
[:]
сокращенную запись, например, если можно получить информацию о типеВ последнем примере словарь имеет тип
Dictionary<String, String>
в первой строке. Обратите внимание, что вам не нужно было указывать это явно, но это было выведено.источник
var dict: [String: String] = [:]
Документация Swift рекомендует следующий способ инициализации пустого словаря:
Я был немного смущен, когда впервые столкнулся с этим вопросом, потому что разные ответы показали разные способы инициализации пустого словаря. Оказывается, на самом деле есть много способов сделать это, хотя некоторые из них немного избыточны или слишком многословны, учитывая способность Свифта выводить тип.
После того, как у вас есть пустой словарь, вы можете добавить пару ключ-значение следующим образом:
Если вы хотите снова очистить свой словарь, вы можете сделать следующее:
Типы по-прежнему,
<String, String>
потому что так было инициализировано.источник
var emptyDictArray = [[String: String]()]
var emptyDictArray = [Dictionary<String, String>()]
Используйте это будет работать.
источник
var emtpyAry = [String]()
. Это имеет смысл.Вы можете просто объявить это так:
источник
Вы должны дать словарю тип
Если компилятор может определить тип, вы можете использовать более короткий синтаксис
источник
Swift:
источник
Я тоже играю с этим. Кажется странным, что вы можете просто объявить пустой словарь, а затем добавить к нему пару ключ / значение следующим образом:
Но вы можете создать словарь, который принимает различные типы значений, используя тип «Любой», например:
источник
Вам необходимо явно указать тип данных, или тип может быть выведен при объявлении чего-либо в Swift.
Swift 3
Пример ниже объявляет словарь с ключом в качестве
Int
типа и значением какString
типа.Способ 1: инициализатор
Метод 2: Сокращенный синтаксис
Способ 3: словарь буквальный
источник
Swift 4
источник
Если вы хотите создать общий словарь с любым типом
источник
Я обычно использую
источник
Объявление и инициализация словарей в Swift
Словарь строки
ИЛИ
Словарь Int
ИЛИ
Словарь AnyObject
ИЛИ
Словарь массива строк
ИЛИ
Массив словарей строки
ИЛИ
источник
Вы можете объявить это как ноль со следующим:
Хорошо, что вы уже набрали текст (обратите внимание, что я использовал var, а не let, думайте о них как о изменяемых и неизменных). Тогда вы можете заполнить его позже:
источник
Вы можете использовать следующий код:
источник
var dictList = String: строка для словаря в swift var arrSectionTitle = строка для массива в swift
источник
Это очень удобно, чтобы найти свой путь
var dict: Dictionary = [:]
источник
^ это добавляет словарь для ввода [string: double]
источник