Site icon AppTractor

Swift-уроки: PropertyWrappers — обертки свойств

В Swift обертки свойств (property wrappers) представляют собой механизм, который позволяет вам инкапсулировать код для чтения и записи свойств. Они предоставляют удобный способ изменять поведение свойств без необходимости изменения самого свойства.

Property wrappers в Swift впервые были представлены в Swift 5.1. Они позволяют вам добавлять дополнительную логику к свойствам, такую как валидация значений, автоматическое логирование и другие манипуляции.

Пример использования обертки свойств в Swift:

@propertyWrapper
struct TwelveOrLess {
    private var value: Int

    init() {
        self.value = 0
    }

    var wrappedValue: Int {
        get { return value }
        set { value = min(newValue, 12) }
    }
}

struct MyStruct {
    @TwelveOrLess var number: Int
}

var instance = MyStruct()

print(instance.number) // Выведет: 0

instance.number = 15
print(instance.number) // Выведет: 12, так как обертка свойства ограничивает значение до 12

В этом примере TwelveOrLess — это обертка свойства. Она предоставляет логику для чтения и записи свойства number в структуре MyStruct. Обертка ограничивает значение свойства до 12.

Property wrappers позволяют сделать код более выразительным и упрощают управление свойствами с дополнительной логикой.

Exit mobile version