Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Using dictionaries Использование словарей

Writing if statements | Writing if statements Написание если заявления | Using the switch statement | Using the switch statement Использование Переключатель | Creating loops in Swift | Creating loops in Swift Создание петель в Swift | Defining functions | Defining functions Определение функции | Creating and using arrays | Creating and using arrays Создание и использование массивов |


Читайте также:
  1. A form of cryptosystem in which encryption and decryption are performed using the same key. Also known as conventional encryption.
  2. Answer the following questions using your own words but taking into account the
  3. C) Interview your partner using the questions in
  4. Choose a verb from the list and complete the text using Past Continuous or the Past Simple.
  5. Complete the following sentences using an appropriate form of the verb.
  6. Creating and using arrays
  7. Creating and using arrays Создание и использование массивов

 

- А второй встроенный тип коллекции в Свифт словарь. В зависимости от вашего языка фоне, вы можете быть знакомы с концепцией этой коллекции, используя термин ассоциативный массив, или с картой, или по Hashtable, или, возможно, просто словарь. Swift, конечно, не единственный язык, который называет этот вид структуры данных словаря. Таким образом, ключевое отличие: в то время как базовую магазинов массива несколькими значениями, каждый из которых обращались с отсчетом от нуля последовательности целых чисел, словарь, вместо этого, хранит множество значений, каждое из которых доступны с помощью уникального ключа.

Таким образом, со словарем, мы храним наборы ключей и значений, каждое из них пару ключ / значение, и пар ключ / значение хранятся вместе. Этот ключ может быть строкой или ключ может быть целым числом. В самом деле, ключ может быть любой тип объекта. В отличие от массива, ключи в словаре не должны быть в любом определенном порядке, при условии, что они являются уникальными. Мы не можем иметь дубликаты ключей в словаре. Мы можем иметь одинаковые значения, если это имеет смысл для ваших данных, но мы не можем иметь дубликаты ключей.

Этот пример США, штат в качестве значений, получить с помощью своих государств сокращений в качестве ключей. Или мы могли бы иметь коды аэропортов в качестве ключей и соответствующие им города, как ценности, или идентификаторы продуктов в качестве ключей и продуктах, которые они представляют в качестве значений, но всегда ключей и значений пар, которые принадлежат друг другу. Так же, как с массивами, словари Swift сильно типизированных. Это не только один тип, но два, потому что по какой-либо один словарь, все ключи должны быть определенного типа, и все значения определенного типа, хотя тип клавиш и тип значений не должны то же самое.

Таким образом, мы могли бы, например, как на левой стороне здесь, мы могли бы иметь словарь, где все ключи целые числа, и все значения являются строками или словаре, где все ключи являются строками, и все значения Булевы или словаре где все ключи являются строками, и все значения также строки. Но то, что мы не можем иметь один словарь, в который ключ может быть Int или может быть строка. Это не допускается. К Xcode, у меня есть новый пустой площадка здесь. При создании словаря, как и при создании любой переменной или постоянной или массив, мы должны обеспечить какую-то информацию типа.

Мы либо использовать вывод типов и пусть Swift сделать это, если начальные значения очевидны, или мы должны были бы использовать явное аннотацию типа. Так, во-первых, сокращение способ сделать это: с помощью простой словарь, мы можем использовать словарь буквальное; очень похож на массив буквальном тем, что он использует квадратные скобки вокруг всего содержимого этого. Но то, что мы делаем это не только несколько отдельных значений, но несколько ключ и значение пар. Каждый ключ и значение пара есть двоеточие между ними, и они разделены запятой.

Так вот, то, что я делаю собираетесь использовать вывод типов. Все ключи и все допустимые значения, очевидно, строки, так что этот массив будет автоматически набирается как таковой. Я могу использовать Quick Look, чтобы видеть в этом словаре, что это четыре множества пар ключ / значение, и перейдите внутрь, чтобы увидеть, что каждый из них имеет две части. Тем не менее, если бы я хотел, чтобы объявить словарь без каких-либо начальных значений, так что нет ничего, чтобы сделать вывод, а затем, позже, загрузить его со значениями, возможно, каких-то внешних данных, я должен был бы объявить его с аннотации типа.

Для словаре, оно нуждается в двух типов: тип для ключей и тип значений. Это, как мы делаем это. Здесь я объявляю переменную словарь под названием продуктов, которые имеет типу. Мы используем квадратные скобки, INT, толстой кишки строк, словарей с целыми ключей и значений строк. Как с массивами, я могу использовать квадратные скобки, синтаксис индекс, если вы предпочитаете, чтобы получить доступ к любой паре один ключ / значение. Если я делаю Printline заявление, как это, в словаре с помощью ключа AZ - так что я печать все нашли с помощью этого ключа - я получу значение Аризона, хотя, если вы видите его здесь, в в панели результатов, то есть слово "дополнительный" вокруг него.

Мы войдем в опциями два фильма с этого момента, но, в общем, это потому, что в любое время я доступе словарь, я должен иметь в виду идею, что, может быть, этот ключ в словаре, и, может быть, это не так, и эта линия не имела бы никакого отношения к печати. Я могу также использовать этот же формат, используя синтаксис индекс либо изменить или добавить новое значение. Таким образом, в данном случае, я говорю, состояния, и я использую FL в качестве ключа. Это на самом деле не существуют в начальных значений, что я, предусмотренных для этого словаря. Таким образом, в данном случае, то, что будет происходить в том, потому что FL не существует, он будет добавлен в качестве новой пары ключ / значение.

Если все-таки существует, он попытался бы изменить значение. Словари у Свифта не имеют метод Append как массивы делают, просто потому, что с массивами, мы всегда можем гарантировать, что мы можем добавить новый элемент в конец массива. Мы просто дайте массив решить, что индекс, элемент. Но мы не давая словарь сказать нам, что индекс у нас есть; мы контроля ключ. Так со словарем, мы должны поддержать идею, что мы думаем, мы добавляем новую пару ключ / значение, но ключ может уже существовать в словаре с другим значением для него.

Теперь, используя этот синтаксис индекс здесь в коротком формате.Эквивалентный метод от руки этого является метод updateValue, так updateValue forKey. Так состояний название нашего словаря. Dot updateValue, мы передаем значение, а затем мы называем параметр для конкретного ключа. Если ключ существует, мы бы обновить соответствующее значение, но если это не так, он будет добавлен в качестве новой пары ключ / значение. Если бы я писал этот код в детской площадкой, этот призыв к updateValue, я ожидал увидеть ноль в панели результатов, потому что, то, что updateValue делает, попытка сначала загрузить и вернуть исходное значение для данного ключа, если таковой существовал в словаре прежде чем он обновляет это значение.

Ну, в моем случае, этот ключ NV не существует, поэтому мы получаем ноль вернулся, ноль у Свифта просто означает отсутствие значения. С другой стороны, если я пишу тот же код, делая updateValue, но где ключ на самом деле соответствует, то я получу существующее значение возвращается, прежде чем он обновляется. Таким образом, в данном случае, я пытаюсь изменить значение ключа Кентукки. Это действительно существует. Это было в оригинальной версии этого словаря здесь, на третьей линии, и я обновляю значение, но это будет первое возвращение в исходное значение для этого, который был просто слово Кентукки.

Давайте взглянем на текущее состояние этого словаря. Я просто написать его на своей собственной линии, иди сюда, а в Quick Look, нажмите глазное яблоко здесь, и мы видим, что это в значительной степени наборы ключей и значений, я бы ожидать увидеть прямо сейчас. Обратите внимание, что они не должны быть в любом определенном порядке здесь. Вы, возможно, создал вещи в алфавитном порядке, но способ, которым вещи были добавил, что не нужно быть таким образом. Ну, мы видели место, где мы используем это слово отсутствует, и это важное слово, когда мы работаем со словарями, потому что, говоря о нулю, самый простой способ, чтобы удалить пару ключ / значение из словаря для использовать синтаксис индекс, используя определенную клавишу, а затем установив его значение к нулю.

Таким образом, мы находим ключ DE и приравнивая к нулю. Теперь, главное, это не означает, что ключ ДЕ-прежнему существует в словаре, просто имеет нулевую ценность. Это позволит удалить пару весь ключ / значение из словаря. Затем, если бы я хотел, чтобы проверить, что я мог бы поставить слово этого государства после, используйте Quick Look, и мы не должны DE с пустой записи; это полностью исчез.Эквивалентный метод от руки для этого можно было бы назвать removeValueForKey.

Опять же, несмотря на название, это не просто удалить значение, он удаляет пару весь ключ / значение из словаря. Хотя, на этот раз также возвращает исходное значение, что, возможно, был в этой ключевой позиции, в данном случае, штат Калифорния. Теперь, как с массивами, мы можем использовать точечный countProperty, чтобы узнать количество пар ключ / значение в словаре. В этом случае, будет четыре состояния, оставшиеся после добавления и удаления некоторых некоторые другие. И, наконец, со словарями, мы также хотим, чтобы иметь возможность перебора него, чтобы пройти каждому пункту.

Мы также можем использовать удобный для в петлю, чтобы пройти через каждый пары ключ / значение в словаре. Хотя синтаксис имеет один дополнительный штрих, потому что элемент, который мы получаем каждый раз вокруг не просто один кусочек информации, она будет иметь пару. Это будет иметь как ключ и значение. Так вот, у меня есть это для цикла: для, отдельного элемента в государственной коллекции. Теперь, мы получили их пишется внутри скобки здесь, ключ, запятая, значение, но это на самом деле временные названия для каждого времени вокруг петли, и эти имена до нас.

Это будет ключевой, то значение, но я мог бы на самом деле так же легко, письменное расшифровать сокращение, запятая, FullName. Как бы то ни первый из них будет ключом; мы должны были бы использовать, что в теле цикла. Как бы то ни второй из них будет иметь значение. Так что это будет цикл через все пары ключ / значение в государствах. Тогда мы получили это четыре раза опцию здесь. Я мог бы нажать кнопку плюс, кнопку истории значений, чтобы увидеть результат. И это именно то, что я ожидал. Есть четыре государства оставили, AZ это сокращение от Аризоны, и так далее, и так далее.

Таким образом, мы итерации очень легко по всей словарь и получить как с ключа и значения. Это очень легко, легко читаемый формат. Однако эта простая на вид кусок синтаксиса здесь, где у нас есть два названия, заключенные в скобки, мы должны говорить об этом, потому что он представляет наш первый, но не последняя наша, встреча с концепцией нашли у Свифта, но не нашел во многих других языков программирования, и это идея "tupple", или кортежа... в следующий раз.

 

 


Дата добавления: 2015-08-20; просмотров: 138 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Using dictionaries| Understanding tuples

mybiblioteka.su - 2015-2024 год. (0.011 сек.)