下标使用方法的额外优势是什么
What is additional advantage of subscript use over method
我正在研究 Swift 中的下标,发现通过使用方法,我们可以访问 class、枚举或结构的成员元素。
那么下标还有什么优势呢?
下标比我能想到的函数有3个优点:
熟悉。许多 Swift 程序员都熟悉使用 []
访问其他语言中的数组元素,例如 Python、C、C++ 和 Java。
简洁。如果要使用函数访问集合元素,则该函数需要一个名称。即使像 at
(Smalltalk 使用的)这样的短名称也需要比 []
更多的字符。比较 array[i]
与 array.at(i)
.
灵活性。下标运算符可以允许读取和写入。您甚至可以在可变二元运算符的左侧使用下标运算符,如下所示:
array[i] += 1
如果没有下标运算符,您需要显式编写两个单独的函数调用,如下所示:
array.at(i, put: array.at(i) + 1)
或者可以使用一个带有突变闭包的函数,像这样:
array.at(i, update: { [=12=] + 1 })
我正在研究 Swift 中的下标,发现通过使用方法,我们可以访问 class、枚举或结构的成员元素。
那么下标还有什么优势呢?
下标比我能想到的函数有3个优点:
熟悉。许多 Swift 程序员都熟悉使用
[]
访问其他语言中的数组元素,例如 Python、C、C++ 和 Java。简洁。如果要使用函数访问集合元素,则该函数需要一个名称。即使像
at
(Smalltalk 使用的)这样的短名称也需要比[]
更多的字符。比较array[i]
与array.at(i)
.灵活性。下标运算符可以允许读取和写入。您甚至可以在可变二元运算符的左侧使用下标运算符,如下所示:
array[i] += 1
如果没有下标运算符,您需要显式编写两个单独的函数调用,如下所示:
array.at(i, put: array.at(i) + 1)
或者可以使用一个带有突变闭包的函数,像这样:
array.at(i, update: { [=12=] + 1 })