• 前提条件

  1. xcode12

  • 创建playground->blank

//test.swift
@propertyWrapper // 属性包装器的定义
struct ClamppedValue{
    private var storedValue:Int = 0
    var wrappedValue:Int{
        get{
            return self.storedValue
        }
        set {
            if newValue < 0{
                self.storedValue = 0
            }else if newValue > 255 {
                self.storedValue = 255
            }else {
                self.storedValue = newValue
            }
        }
    }
    init(wrappedValue initValue:Int){
        self.wrappedValue = initValue
    }
}
struct MyColor{
    @ClamppedValue var red:Int//属性有属性包装器的逻辑
    @ClamppedValue var green:Int
    @ClamppedValue var blue:Int
}
let color:MyColor = MyColor(red: 400, green:-2 , blue:2)
print("color: \(color)")
  • 运行观察red,green数值变化

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐