- プロパティアクセス時に行う何らかの処理(getter, setter)を共通化し再利用できる仕組み
- どのようにプロパティがget, set, initされるのかという知識を別のオブジェクトに分離できる
- getterとsetterを持つプロパティのシンタックスシュガー
- ラップしたプロパティにアクセスするときはProperty Wrapper経由でのアクセスになる
- Swift5.1から追加された機能で、Swift5.5で関数やクロージャの引数に対してもProperty Wrapperを用いた属性をつけられるように拡張された
- 定義したProperty Wrapperは型ではなく
属性(先頭に@をつける)として利用される
struct SmallRectangle {
@TwelveOrLess var height: Int // ← @TwelveOrLessがProperty Wrapper