В Swift 5.8 который поставляется с Xcode 14.3 вошел SE-0365
Это еще один шаг в сторону избавления от явного использования self. Теперь после того как вы развернули (unwrap) self который захвачен слабой ссылкой можно опустить self как в примере с
#swift #evolution
Это еще один шаг в сторону избавления от явного использования self. Теперь после того как вы развернули (unwrap) self который захвачен слабой ссылкой можно опустить self как в примере с
fireCount
#swift #evolution
🔥12👍2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Теперь можно использовать if в качестве выражения, например для динамического задания значения константы
#swift #evolution
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16👎1
Продолжаю разбирать пропоузалы Swift. В этом предложении вводится новый атрибут
@specialized
, который позволяет в дженерик функции генерировать предварительно специализированные версии этой функции для определенных типов. Эта специализация создает пользовательскую реализацию функции, где "дженерики" заменяются определенными типами. Это позволяет оптимизировать функции, под конкретные типы: когда неспециализированная версия функции вызывается с одним из этих типов, компилятор генерирует код, который будет повторно отправлен в эти предварительно специализированные версии, если таковые имеются. Врядли это пригодится где-то кроме Foundation и специализированных фреймворков, но идея интересная.#swift #evolution
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем разбираться с "упрощениями" в Swift. В этот раз, нас спасают от небезопасной работы с контейнерами и расширяют возможности использования новых типов
Span
и RawSpan
в существующих контейнерах.Мотивация
Многие типы контейнеров из стандартной библиотеки могут предоставлять прямой доступ к своему внутреннему представлению. До сих пор это можно было сделать только небезопасным способом. Стандартная библиотека предоставляет эту небезопасную функциональность с помощью функций, принимающих замыкания, таких как
withUnsafeBufferPointer()
, withContiguousStorageIfAvailable()
и withUnsafeBytes()
. У этих функций есть несколько недостатков, самый заметный из которых — использование небезопасных типов, что делает их неприемлемыми в средах с повышенными требованиями к безопасности. API, принимающие замыкания, также могут быть сложны в сочетании с новыми функциями и друг с другом. Эти проблемы решаются с помощью Span. Согласно этому предложению, совместимые типы стандартной библиотеки будут предоставлять доступ к своему внутреннему представлению через вычисляемые свойства типа Span
и RawSpan
.#swift #evolution #proposals
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM