我正在学习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...
这部分没有在书中指定,我不能得到那些是什么。
任何人都可以解释我得到和设置是什么?
类中的变量的获取和设置指的是检索(“获取”)或改变(“设置”)它们的内容。
原文链接:https://www.f2er.com/swift/321304.html考虑类家族的可变成员。自然地,这个变量将需要是一个整数,因为一个家庭永远不能包含两点的东西人。
所以你可能会通过定义这样的成员变量:
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函数设置的值的实际变量。原始成员现在已经成为一个计算属性,这意味着它只作为一个接口来处理我们的实际变量。