我创建了以下扩展:
import Foundation
extension Collection {
/// Returns `nil` if empty
var nonEmptyValue: Self? {
isEmpty ? nil : self
}
}
现在我想让它成为一个属性包装器,这样我就可以像这样使用它:
final class MyClass {
@NonEmpty
var string: String? = "test"
}
这个想法是,每当一个空字符串被分配给属性时,它就会被替换为nil
.
甚至有可能创建这样一个属性包装器(因为String?
和String
是不同类型的),我将如何去做?