介绍
首先调用哪个 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