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)
通过采用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方法是免费的。