Subscript. Sometimes a class contains a store of data. It may have an array of animal names. With a subscript, we access those names with array-like syntax.
A simplification. A subscript uses property keywords (like get, set and newValue). It accepts one or more arguments that determine the value to be returned.
This program uses a class with a subscript. The subscript internally just accesses four fields on the class. It uses no array as a backing store.
Detail This is part of the Example class. It receives two Int arguments. It returns a String.
Detail We use some logic to determine which of the four fields to return. This is not an ideal design. But it uses subscript syntax.
Detail Uses if-statements to determine which field to assign to the newValue. The newValue is a keyword that refers to the assignment value.
class Example {
var value1: String = ""
var value2: String = ""
var value3: String = ""
var value4: String = ""
subscript(row: Int, column: Int) -> String {
get {
// Get field based on row and column.
if row == 0 {
if column == 0 {
return value1
}
else {
return value2
}
}
else {
if column == 0 {
return value3
}
else {
return value4
}
}
}
set {
// Set field based on row and column.
if row == 0 {
if column == 0 {
value1 = newValue
}
else {
value2 = newValue
}
}
else {
if column == 0 {
value3 = newValue
}
else {
value4 = newValue
}
}
}
}
}
// Create our class and use the subscript.var ex = Example()
ex[0, 0] = "cat"
ex[0, 1] = "dog"
ex[1, 0] = "bird"
ex[1, 1] = "fish"// Read values from the fields.
print(ex[0, 0])
print(ex[0, 1])
print(ex[1, 0])
print(ex[1, 1])cat
dog
bird
fish
Concepts. A subscript typically will access an array (including a 2D array) or a dictionary. But it can do anything. It can even validate arguments and do nothing or return a default value.
Structures, classes. A subscript may be used on either a structure or a class. It is a special method type that allows simpler access to internal data of the type.
A review. Subscripts provide array-like, intuitive access to class data. They are called in external places. With subscripts, we can validate access to data.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.