加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 06:09:17 所属栏目:百科 来源:网络整理
导读:我正在学习Swift,我正在从苹果公司阅读Swift编程语言,我没有Objective C的背景(只有PHP,JS和其他,但没有Obj C) 在第24-25页,我看到了这段代码: //...Class definition stuff...var perimeter: Double { get { return 3.0 * sideLength } set { sideLen
我正在学习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函数设置的值的实际变量。原始成员现在已经成为一个计算属性,这意味着它只作为一个接口来处理我们的实际变量。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读