Карта - это функция, которая принимает замыкание в качестве параметра.Мы можем вызвать карту и передать параметр, как мы делаем для любого другого обычного вызова функции, не снимая скобок ()
например
(0...100).map ({ _ in print("yeti")})
Но swift позволяет нам убрать скобки как способ сокращения и мыможно написать так, исключая ()
(0...100).map { _ in print("yeti")}
Но если вы хотите получить доступ к отдельным значениям элементов массива, вы можете сделать это двумя способами,
- Для данного массива вы можете получить доступ к его отдельному элементу, используя $ 0, который в основном говорит:
Hey map, give me the first element at this current index
.
(0...100).map {$0}
Вместо того, чтобы использовать быструю индексацию по умолчанию, вы решаете определить значение, к которому вы обращаетесь, присваивая ему читаемое имя переменной, например,
(0...100).map {element in}
Это получает $0
и присваивает его element
, ключевое слово in
в основном говорит компилятору, что эй, $0
теперь element
, и мы собираемся использовать его после in
.В противном случае, если вы удалите ключевое слово in
, компилятор скажет, что не знает ни одной переменной с именем element
.
. Для специальных коллекций, таких как словари, у них есть два значения для индекса, то есть key
иvalue
, поэтому, если вы хотите получить доступ к содержимому словаря во время отображения, вы можете сделать это двумя способами, как указано выше, а).используйте быстрые индексы по умолчанию или присвойте значения на индекс читаемым именам переменных.Например,
let dictionary = ["a": 3, "b": 4, "c": 5]
dictionary.map{($0, $1)}
Мы используем внутренние скобки ()
, чтобы дать компилятору понять, что у отображаемой коллекции есть два значения на индекс.Обратите внимание, что внутренняя скобка создает кортеж
dictionary.map {(key, value) in }