Criar wrapper de propriedade em Swift

Dec 20 2022
No Swift, wrappers de propriedade são um recurso de linguagem que permite agrupar um pedaço de código em torno de uma propriedade, a fim de adicionar comportamento ou funcionalidade adicional a essa propriedade. Os wrappers de propriedade são definidos usando o símbolo @, seguido pelo nome do wrapper de propriedade.

No Swift, wrappers de propriedade são um recurso de linguagem que permite agrupar um pedaço de código em torno de uma propriedade, a fim de adicionar comportamento ou funcionalidade adicional a essa propriedade. Os wrappers de propriedade são definidos usando o @símbolo, seguido pelo nome do wrapper de propriedade.

Aqui está um exemplo de um wrapper de propriedade simples chamado Trimmedque apara os espaços em branco iniciais e finais de uma string:

@propertyWrapper
struct Trimmed {
    private(set) var wrappedValue: String

    init(wrappedValue: String) {
        self.wrappedValue = wrappedValue.trimmingCharacters(in: .whitespaces)
    }
}

Os wrappers de propriedade são uma ferramenta útil para adicionar funcionalidade às propriedades de maneira concisa e reutilizável. Eles são frequentemente usados ​​para coisas como validação de valor, formatação de dados e sincronização de threads.

Invólucro de propriedade de teste

Para testar o wrapper de propriedade acima:

import XCTest

class TrimmedTests: XCTestCase {
    func testTrimmed() {
        let person = Person(name: "  John Smith   ")
        XCTAssertEqual(person.name, "John Smith")
    }
    
    struct MockPerson {
        @Trimmed var name: String
    }
}