Wie macht man einen memberwise-Initialisierer für Strukturen in Swift standardmäßig public?
Hallo zusammen! Ich habe angefangen, Swift zu lernen, und bin auf ein Problem gestoßen, wenn ich mit Strukturen (struct) arbeite. Standardmäßig generiert Swift für Strukturen einen memberwise-Initialisierer (elementweisen Initialisierer), der es ermöglicht, eine Instanz zu erstellen, indem Werte für alle Eigenschaften übergeben werden. Aber wenn ich eine Struktur mit dem Zugriffslevel `public` deklariere, wird der memberwise-Initialisierer internal, nicht public. Dadurch kann ich die Struktur nicht aus einem anderen Modul verwenden.
Hier ist ein Beispiel:
```swift
// ModuleA.swift
public struct User {
public let name: String
public let age: Int
// memberwise-Initialisierer ist nicht explizit deklariert
}
// ModuleB.swift (anderes Modul)
let user = User(name: "Alice", age: 30) // Fehler: 'User' cannot be initialized with memberwise initializer
```
Ich
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Wie man die Qualität eines Python-Kurses vor dem Kauf prüft
Property-basiertes Testen in JavaScript: Finden Sie Bugs, die Sie nicht gesucht haben
Bereitstellung einer JavaScript-Anwendung auf einem VPS: Schritt-für-Schritt-Anleitung von A bis Z