[Swift]プロフェッショナルモニター
こんにちは!
Kio
👻 willSet
didSet
を見たことがありますか?これは
프로퍼티 감시자(Property Observer)
と関連があったら今日整理します
Let's get started 🥰
パフォーマンスモニター
コンセプト
Propertyモニタは、Property(プロパティ)値の変化を観察し、応答します.新しい値がPropertyの現在の値と同じでも、Propertyの値を設定するたびにPropertyモニタが呼び出されます.
今はどういう意味か分からないのが当たり前...😱
宣言可能な場所(Where)
使用可能な場所は次のとおりです.
宣言
Propertyモニタは次のように宣言します.
struct Madonalds {
var orderedBurgers: Int {
willSet {
// some code
}
didSet {
// some code
}
}
}
選択(Options)
willSet
値didSet
新しい値例(Discussion)
プロパティ?監視者.
プロの監視者?話し始めから難しい.😶🌫️
次の例では、感覚をより簡単に見つけることができます.👻
class McDonalds {
var orderedBurgers: Int = 0
}
var hamburgerCounter = McDonalds()
hamburgerCounter.orderedBurgers = 10
print(hamburgerCounter.orderedBurgers) // 10
McDonalds
の内部Class
で저장 속성
と発表されましたorderedBurgers
に設定すると、上記の値を変更できます.その後、
var
を使用してコンソールの値を表示できます.では、
저장 속성
を使うとどんな違いがありますか?print
および프로퍼티 감시자
をチェック!注文したハンバーガーの数をチェック
class McDonalds {
var orderedBurgers: Int = 0 {
willSet(newValue) {
print("배고파서 주문한 햄버거는 \(newValue)개")
}
didSet(oldValue) {
print("이전 주문한 햄버거는 \(oldValue)개")
}
}
}
var hamburgerCounter = McDonalds()
hamburgerCounter.orderedBurgers = 10
// 배고파서 주문한 햄버거는 10개 - newValue
// 이전 주문한 햄버거는 0개 - oldValue
hamburgerCounter.orderedBurgers = 20
// 배고파서 주문한 햄버거는 20개 - newValue
// 이전 주문한 햄버거는 10개 - oldValue
違いが見えますか?!새로 주문한 햄버거의 숫자(newValue)
、이전 주문한 햄버거의 숫자(oldValue)
を使用しますが、willSet
はありませんdidSet
とprint
を知ることができます!🚨
これは、
변경 이후 값(newValue)
がproperty(属性)値の変化を観察し、応答できるためである.Postingの一番上の변경 이전 값(oldValue)
をもう一度見てみると、今はどういう意味か理解できます!パラメータ(Parameters)
newValue - oldValue
class McDonalds {
var orderedBurgers: Int = 0 {
willSet(newValue) {
print("배고파서 주문한 햄버거는 \(newValue)개")
}
didSet(oldValue) {
print("이전 주문한 햄버거는 \(oldValue)개")
}
}
}
프로퍼티 감시자
のうち개념 (concept)
willSet
のうちnewValue
上の宣言を見ましたか?!宣言されたパラメータ名は、内部で使用できます.
newValue- oldValue
class McDonalds {
var orderedBurgers: Int = 0 {
willSet {
print("배고파서 주문한 햄버거는 \(newValue)개")
}
didSet {
print("이전 주문한 햄버거는 \(oldValue)개")
}
}
}
え...?👀これは
didSet
とoldValue
の隣で何も発表されていません.内部で使用されているのは
willSet
とdidSet
です.🤔アップルはこれをデフォルトパラメータに指定します.
宣言なしで使用:)
newBurgersNumber - oldBurgersNumber
class McDonalds {
var orderedBurgers: Int = 0 {
willSet(newBurgersNumber) {
print("배고파서 주문한 햄버거는 \(newBurgersNumber)개")
}
didSet(oldBurgersNumber) {
print("이전 주문한 햄버거는 \(oldBurgersNumber)개")
}
}
}
必要な名前を使用してパラメータを宣言することもできます.それが可能だと知ったら、プロの監視者は終わります!
プロの監視員は終わりだ
しかし、いつ終わっても私です.😱
リファレンス
Properties - The Swift Programming Language
間違った情報があれば、いつでもメッセージを残してください.👻
Reference
この問題について([Swift]プロフェッショナルモニター), 我々は、より多くの情報をここで見つけました
https://velog.io/@un1945/Swift-프로퍼티-감시자-Property-Observer
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について([Swift]プロフェッショナルモニター), 我々は、より多くの情報をここで見つけました https://velog.io/@un1945/Swift-프로퍼티-감시자-Property-Observerテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol