Avatar ·

Como tornar o inicializador memberwise público por padrão para structs em Swift?

Olá a todos! Comecei a estudar Swift e me deparei com um problema ao trabalhar com structs. Por padrão, o Swift gera para structs um inicializador memberwise (inicializador elemento a elemento), que permite criar uma instância passando valores para todas as propriedades. Mas se eu declaro uma struct com nível de acesso `public`, o inicializador memberwise se torna interno (internal), e não público. Por causa disso, não consigo usar a struct de outro módulo. Aqui está um exemplo: ```swift // ModuleA.swift public struct User { public let name: String public let age: Int // inicializador memberwise não declarado explicitamente } // ModuleB.swift (outro módulo) let user = User(name: "Alice", age: 30) // Erro: 'User' cannot be initialized with memberwise initializer ``` Eu entendo que posso escrever meu próprio inicializador público: ```swift public struct User { public let name: String public let age: Int public init(name: String, age: Int) {