一个类包含一个私有数组
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)
...
}
问题:是否有更好的方法可以使客户机对阵列进行读取访问?