Swift 数组索引(of:)方法签名返回Int?但使用上述方法返回Array.Index?
在苹果的文档中,Swift 数组索引(of:)方法签名返回Int?但使用上述方法返回Array.Index?,swift,Swift,在苹果的文档中,索引(of:)签名显示返回类型为Int?: func索引(元素:元素)->Int 但是,在下面的示例中,i的类型是Array.Index? let arr = [1,2,3,4,5] var i = arr.index(of: 4) // i is Array.Index? 为什么退货类型不同?他们是同一个人吗?我在这里遗漏了什么?Array.Index是Int;)啊,我现在明白了。这是一个打字机别名。但是为什么呢?不太清楚为什么是什么意思–集合需要索引关联类型,Array通
索引(of:)
签名显示返回类型为Int?
:
func索引(元素:元素)->Int
但是,在下面的示例中,i
的类型是Array.Index?
let arr = [1,2,3,4,5]
var i = arr.index(of: 4) // i is Array.Index?
为什么退货类型不同?他们是同一个人吗?我在这里遗漏了什么?
Array.Index
是Int
;)啊,我现在明白了。这是一个打字机别名。但是为什么呢?不太清楚为什么是什么意思–集合
需要索引
关联类型
,Array
通过Int
@Aaron满足了这一点,因为集合
协议要求其一致性类型使用Int
作为其索引将受到不必要的限制。如果我想用我自己的Int128
索引大于Int
(Int64
)可以索引的集合,该怎么办?@Alexander更具体地说,index
为什么应该是一个数字<代码>字典也是集合!