Swift什么是’get’和’set’?
我正在学习Swift,我正在从苹果公司阅读Swift编程语言,我没有Objective C的背景(只有PHP,JS和其他,但没有Obj C)
在第24-25页,我看到了这段代码: //...Class definition stuff... var perimeter: Double { get { return 3.0 * sideLength } set { sideLength = newValue / 3.0 } } //...Class continues... 这部分没有在书中指定,我不能得到那些是什么。 任何人都可以解释我得到和设置是什么?
类中的变量的获取和设置指的是检索(“获取”)或改变(“设置”)它们的内容。
考虑类家族的可变成员。自然地,这个变量将需要是一个整数,因为一个家庭永远不能包含两点的东西人。 所以你可能会通过定义这样的成员变量: class family { var members:Int } 但是,这将给予使用这个类的人们将家庭成员的数量设置为0或1的可能性。因为没有1或0的家庭这样的东西,这是非常不幸的。 这是吸气剂和固化剂进入的地方。这样,你可以自己决定如何改变变量以及它们可以接收什么值,以及决定它们返回什么内容。 回到我们的家庭类,让我们确保没有人可以将成员值设置为小于2: class family { var _members:Int = 2 var members:Int { get { return _members } set (newVal) { if newVal >= 2 { _members = newVal } else { println('error: cannot have family with less than 2 members') } } } } 现在我们可以像以前一样访问成员变量,通过键入instanceOfFamily.members,并且感谢setter函数,我们还可以通过输入来设置它的值,例如:instanceOfFamily.members = 3。但是,是我们不能将此变量设置为小于2的事实。 注意_members变量的引入,它是存储通过成员setter函数设置的值的实际变量。原始成员现在已经成为一个计算属性,这意味着它只作为一个接口来处理我们的实际变量。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |