介绍

首先调用哪个 get/set/didset/dwillset?你叫什么?接到电话时可以做什么?让我们简单总结一下这样一个超级基础的用法。如有错误或补充,欢迎评论。

目标听众

本文针对以下人群:

  • 初级工程师
  • 新手编程

获取/设置详细信息

变量和常量后面有 {} 的东西,如下面的代码计算属性它说。
计算属性并重视自己没有的变量顺便说一句,在 ptorocol 中定义变量时,最好将它们记为一个集合,因为它们具有相同的表达方法。另外,相反存储财产有一个变量叫这就是你自己的价值变量与是关于。

  • 请记住,get 是只读的,set 是只写的
    • 先调用set,将set设置的值存入newValue
    • 因此,处理顺序是在set中写入值→根据写入的值获取get值
迅速
//ストアドプロパティ
var stored: Int = 1 //今回は使わない

//コンピューテッドプロパティ
protocol computed {
    var taxPrice: Int {get set}
}

//定義(税抜、税込を想定したクラス)
class Price: computed {
    
    //ストアドプロパティ 今回、setが呼ばれることによってここの値が変化していく
    var noTaxPrice: Int = 100
    
    //コンピューテッドプロパティ ここで値をあれこれする
    var taxPrice: Int {
        //setが呼ばれた場合2番目に呼ばれる処理
        get {
            return noTaxPrice * 2
        }
        //setが呼ばれた場合1番目に呼ばれる処理
        //インスタンス化し、taxPriceに新たに値をセットした際はnewValueに格納される。
        //値はnewValueに格納されるのであって、taxPriceには格納されない。
        set{
            self.noTaxPrice = newValue / 2
        }
        
    }
}

//インスタンス化
let price = Price()
//set{}が呼ばれる、この300はnewValueへ格納される
price.taxPrice = 300

//出力
//setが呼ばれた場合、self.noTaxPrice = newValue / 2 の計算結果がnoTaxPriceプロパティに格納される
print(price.noTaxPrice) //150
//set → get の順で呼ばれる
print(price.taxPrice) //300

综上所述

我认为当您在实践中实际看到 get/set 的工作原理时,了解它是很重要的。还有一个有点类似的wiiset/didset 概念。我也想将其包含在一篇文章中。

参考文章

[swift] get 和 set 是什么意思?
Swift:变量后的 { }... 这是一个计算属性(get/set)。

开发环境

  • Xcode-13.4.1
  • iOS13 或更高版本

原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308632119.html

相关文章:

  • 2021-12-13
  • 2021-04-26
  • 2021-08-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-17
猜你喜欢
  • 2021-11-06
  • 2021-06-21
  • 2022-12-23
  • 2021-09-13
  • 2021-04-30
  • 2021-08-01
  • 2021-08-27
相关资源
相似解决方案