首页 > 解决方案 > 如何让客户读取 Swift 中的数组?

问题描述

一个类包含一个私有数组

private  var _members = [Member]()

如何授予客户对该阵列的读取权限?

客户端应该能够访问成员,但不能修改数组。以下解决方案可能太贵了

var members : [Member] { return _members } // too expensive?

它太昂贵了,因为如果我做对了,每次客户端访问一个元素时它都会返回整个数组 ( theObject.members[i])

我目前的解决方案如下:

var membersCount : Int { return _members.count }
func memberFrom(no:Int) -> Member { return _members[no] }

因此,客户端可以按如下方式遍历成员:

for i in 0..<theObject.membersCount {
     let member = theObject.memberFrom(no:i)
     ...
}

问题:有没有更好的方法让客户端读取阵列?

标签: swift

解决方案


推荐阅读