var arrayorset=["0","1","21"]
Swift是类型推断和类型安全性,但是swift如何知道集合和数组之间的区别
当需要数组而不是集合时会出现问题,因为集合是无序列表,它无法按顺序检索我的列表
那么如何解决这个问题?
答案 0 :(得分:1)
为方便起见,可以使用数组文字初始化集合。要指定要使用集合而不是数组,可以注释类型:
let array = ["0", "1", "21", "1"]
let set: Set<String> = ["0", "1", "21", "1"]
print(array) // ["0", "1", "21", "1"]
print(set) // ["0", "1", "21"]
答案 1 :(得分:1)
...如何迅速知道集合和数组之间的区别...
["0", "1", "21"]
是数组文字,,并且类型推断通过ExpressibleByArrayLiteral
协议记录(添加了强调):
数组,集合和选项集均符合ExpressibleByArrayLiteral
...
由于 Array是数组文字的默认类型,因此无需编写任何其他代码,因此可以通过提供一个或多个值来声明具有特定元素类型的数组。
因此
let arrayOfStrings = ["0", "1", "21"] // [String]
声明一个字符串数组,并且需要显式类型注释来声明一组字符串:
let setOfStrings: Set = ["0", "1", "21"] // Set<String>
请注意,Set
足以用于此处的类型注释,元素类型String
是从数组文字中推断出来的。