如果我绑定从一个集合类型计算的索引,例如String
,我似乎可以将该索引重用于其他集合。例如:
var str1 = "Hello, World!"
var dex1 = str1.startIndex
var str2 = "Goodbye, All!"
str2[dex1] => "G"
如果将String.Index
视为整数偏移量(进入数组),这是有道理的;但是,作为整数的指数远非要求。然而,许多/所有内置的Swift集合类型:Array
,Dictionary
,Set
和String
都具有这些可重复使用的'索引。
这个'重用'跨集合类型有哪些要求?我没有在任何文档中注明过它;我忽略了吗?
在上面的代码示例中,我曾预料到:
> str2[dex1]
Exception: dex1 is not an index of str2
[String只是一个例子;看到粗体问题]
答案 0 :(得分:0)
答案是,在Apple论坛上,总结:观察到的行为: