访问 Struct 时返回特定属性而不引用其名称

Joe*_*tto 4 swift swiftui

Swift 中有没有一种方法可以让我从结构体中获取属性而无需引用它?

例如

public struct ASValue<T: Hashable>: Hashable {
    private let id = UUID()
    public var item: T
    
    public init(item: T) {
        self.item = item
    }
}

let val = ASValue(item: "Example")

print(val) // Prints: Example
Run Code Online (Sandbox Code Playgroud)

vad*_*ian 5

通过采用CustomStringConvertible和限制T也是可能的CustomStringConvertible

public struct ASValue<T: Hashable>: Hashable, CustomStringConvertible where T: CustomStringConvertible {
    
    private let id = UUID()
    public var item: T
    
    public var description : String {
        return "\(item)"
    }
}

let val = ASValue(item: "Example")

print(val) // Prints: Example
Run Code Online (Sandbox Code Playgroud)

这是一个结构体,该init方法是免费的。