Swift什么是’get’和’set’?

前端之家收集整理的这篇文章主要介绍了Swift什么是’get’和’set’?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在学习Swift,我正在从苹果公司阅读Swift编程语言,我没有Objective C的背景(只有PHP,JS和其他,但没有Obj C) @H_301_1@在第24-25页,我看到了这段代码

//...Class definition stuff...

var perimeter: Double {
    get {
        return 3.0 * sideLength
    }
    set {
        sideLength = newValue / 3.0
    }
}

//...Class continues...
@H_301_1@这部分没有在书中指定,我不能得到那些是什么。

@H_301_1@任何人都可以解释我得到和设置是什么?

类中的变量的获取和设置指的是检索(“获取”)或改变(“设置”)它们的内容。 @H_301_1@考虑类家族的可变成员。自然地,这个变量将需要是一个整数,因为一个家庭永远不能包含两点的东西人。

@H_301_1@所以你可能会通过定义这样的成员变量:

class family {
   var members:Int
}
@H_301_1@但是,这将给予使用这个类的人们将家庭成员的数量设置为0或1的可能性。因为没有1或0的家庭这样的东西,这是非常不幸的。

@H_301_1@这是吸气剂和固化剂进入的地方。这样,你可以自己决定如何改变变量以及它们可以接收什么值,以及决定它们返回什么内容

@H_301_1@回到我们的家庭类,让我们确保没有人可以将成员值设置为小于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')
     }
   }
  }
}
@H_301_1@现在我们可以像以前一样访问成员变量,通过键入instanceOfFamily.members,并且感谢setter函数,我们还可以通过输入来设置它的值,例如:instanceOfFamily.members = 3。但是,是我们不能将此变量设置为小于2的事实。

@H_301_1@注意_members变量的引入,它是存储通过成员setter函数设置的值的实际变量。原始成员现在已经成为一个计算属性,这意味着它只作为一个接口来处理我们的实际变量。

猜你在找的Swift相关文章