Swift中的get和set方法

当我们得到属性值的时候,会调用该属性的get方法。

当我们去设置属性值的时候,会调用该属性的set方法。

当我们给属性设置值的时候,Swift会自动给我们创建一个名为newValue的常量并且可以用于set{}中。

Swift中有储值属性和计算属性,一般我们应该是给计算属性添加get和set方法,现在先通过一个Example展示:

var A:Int = 0
var B:Int = 0

var C:Int {
	get {
		return 1
	}
	set {
		print("Recived new value", newValue, " and stored into 'B' ")
		B = newValue
	}
}

//When we are getting a value of C it fires get{} part of C property
A = C
A            //Now A = 1

//When we are setting a value to C it fires set{} part of C property
C = 2
B            //Now B = 2

var c:Int = 0
var _num : Int = 2
var num : Int {
get{
	return _num
	} set (newValue) {
	if newValue >= 2 {
	   _num = newValue
	} else {
	    print("error: cannot have family with less than 2 members")
	    c = 0
	    _num = 0
	}
    }
}

下面这段代码是我自己写的,如果var a = num,那么会调用num的get方法,会返回_num,所以a的值为2

如果num = 5,调用set方法,newValue为5且大于2,因此此时_num的值为5

如果num = 1,调用set方法,走else分支,c = 0, _num = 0


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值