Карточка Senior Типы значений и ссылочные обновлено
Модификаторы borrowing и consuming
Вопрос
Что означают модификаторы параметров borrowing и consuming?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
borrowing: функция временно получает значение только для чтения, вызывающий остаётся владельцем. consuming: функция забирает владение, вызывающий больше не может использовать значение. Обязательны для noncopyable-типов, для обычных помогают убрать лишние retain/release.
Ответ
borrowing: функция временно получает значение только для чтения, вызывающий остаётся владельцем. consuming: функция забирает владение, вызывающий больше не может использовать значение. Обязательны для noncopyable-типов, для обычных помогают убрать лишние retain/release.
Разбор
Связанный оператор consume x явно завершает жизнь локальной переменной.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Copy-on-write у Array: когда копируется буфер
Следующий вопрос
Как сделать свой copy-on-write
Ещё по теме «Типы значений и ссылочные»
- Existential container: как хранится any Protocol
- Типы значений и ссылочные типы в Swift
- Оператор === в Swift
- Зачем indirect у enum
- Задача на Swift: стек отмены для текстового поля
- let и экземпляр класса: можно ли менять свойства
- Типы Swift: значение или ссылка
- Когда пропадает memberwise-инициализатор структуры