Swift编程:属性包装器与命令行工具开发
1. 属性包装器基础
属性包装器是一种灵活的方式,用于定义在访问属性时应执行的自定义行为,并以抽象和可重用的方式轻松定义这些行为。下面以 Percentage 属性包装器为例进行介绍。
1.1 投影相关值
在调试使用 Percentage 属性包装器的程序时,可能需要了解变量值在被限制到允许范围之前的最后一次赋值。可以通过改变初始化器和包装值的行为来实现,即在读取属性时进行值的限制,而不是在写入时。
@propertyWrapper public struct Percentage {
private var storage: Double
private var upperBound: Double
public init(wrappedValue: Double, upperBound: Double = 1) {
storage = max(min(wrappedValue, 1), 0)
storage = wrappedValue
self.upperBound = upperBound
}
public var wrappedValue: Double {
set {
storage = max(min(newValue, upperBound), 0)
storage = newValue
}
g
超级会员免费看
订阅专栏 解锁全文
1468

被折叠的 条评论
为什么被折叠?



