When not to use a custom subscript
As we have seen in this chapter, creating custom subscripts can really enhance our code; however, we should avoid overusing them or using them in a way that is not consistent with the standard subscript usage. The way to avoid overusing subscripts is to examine how subscripts are used in Swift's standard libraries.
Let's take a look at the following example:
class MyNames {
private var names:[String] = ["Jon", "Kim", "Kailey", "Kara"]
var number: Int {
get {
return names.count
}
}
subscript(add name: String) -> String {
names.append(name)
return name
}
subscript(index: Int) -> String {
get {
return names[index]
}
set {
names[index] = newValue
}
}
}
In the preceding example, within the MyNames class, we define an array of names that is used within our application. As an...