如何让 Swift 中结构的 memberwise 初始化器默认公开?
大家好!我开始学习 Swift,在处理结构体(struct)时遇到了一个问题。默认情况下,Swift 会为结构体生成 memberwise 初始化器(逐成员初始化器),允许通过传递所有属性的值来创建实例。但如果我将结构体声明为 `public` 访问级别,memberwise 初始化器会变成内部(internal)而非公开的。因此,我无法从其他模块使用该结构体。
示例如下:
```swift
// ModuleA.swift
public struct User {
public let name: String
public let age: Int
// memberwise 初始化器未显式声明
}
// ModuleB.swift(另一个模块)
let user = User(name: "Alice", age: 30) // 错误:'User' 无法使用 memberwise 初始化器初始化
```
我知道可以编写自己的公开初始化器:
```swift
public struct User {
public let name: String
public let age: Int
public init(name: String, age: Int) {