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...