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
@をつけて宣言し繰り返し使えるプロパティ、便利ですね。
参考サイトをもう一つ
この記事が気に入ったらサポートをしてみませんか?