見出し画像

Swiftで行こう!-Property Wrappers!2


Propertyにはcomputed property とstored propertyがありますね。

ちょっと順を追ってやっていきます。まず、小文字で変数に"hello"と入れてこれを大文字HELLOにします。普通に、

var str = "hello"
print(str.uppercased())   // これでHELLOと出力されます。

そして、computed propertyで、

var text = "hello"
var wrappedValue:String{
   get{
       return text.uppercased()
     
   }
}
 print(wrappedValue)

これを使い回すために、

@propertyWrapper
struct Uppercased {
   private var text: String
   var wrappedValue: String {
       get { text.uppercased() }
       set { text = newValue }
   }
   init(wrappedValue: String)  {
       self.text = wrappedValue
   }
}
@propertyWrapper

を付けて宣言します。構造体で定義します。

struct Uppercased{

}

変数を宣言していきます。

var text: String

computed property

var wrappedValue: String {
get { text.uppercased() }
set { text = newValue }
}

最後に初期化できるように

init(wrappedValue: String) {
self.text = wrappedValue
}

@propertyWrapperで宣言した構造体は@を付けて簡単実行出来ます。使ってみます。

struct User {
   @Uppercased var username: String
}
let user = User(username: "hello")
user.username

と実行すると。

"HELLO"

と大文字となります。

 @Uppercased var username: String

@をつけて宣言し繰り返し使えるプロパティ、便利ですね。

参考サイトをもう一つ



この記事が気に入ったらサポートをしてみませんか?