我可能有一个如下所示的数组:
[1, 4, 2, 2, 6, 24, 15, 2, 60, 15, 6]
或者,实际上,任何类似数据类型的序列.我想要做的是确保每个相同的元素只有一个.例如,上面的数组将变为:
[1, 4, 2, 6, 24, 15, 60]
请注意,删除了重复的2,6和15,以确保每个相同的元素只有一个.Swift是否提供了一种轻松完成此操作的方法,或者我自己必须这样做?
我正在创建一个类似于a的结构String,除了它只处理Unicode UTF-32标量值.因此,它是一个数组UInt32.(有关更多背景,请参阅此问题.)
我希望能够将自定义ScalarString结构用作字典中的键.例如:
var suffixDictionary = [ScalarString: ScalarString]() // Unicode key, rendered glyph value
// populate dictionary
suffixDictionary[keyScalarString] = valueScalarString
// ...
// check if dictionary contains Unicode scalar string key
if let renderedSuffix = suffixDictionary[unicodeScalarString] {
// do something with value
}
Run Code Online (Sandbox Code Playgroud)
为此,ScalarString需要实现Hashable协议.我以为我可以这样做:
struct ScalarString: Hashable {
private var scalarArray: [UInt32] = []
var hashValue : Int {
get {
return self.scalarArray.hashValue // error
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个类型的字典,[petInfo : UIImage]()但我收到了错误Type 'petInfo' does not conform to protocol 'Hashable'.我的petInfo结构是这样的:
struct petInfo {
var petName: String
var dbName: String
}
Run Code Online (Sandbox Code Playgroud)
所以我想以某种方式使它可以清除,但它的组件都不是一个整数,这是var hashValue: Int需要的.如果它的字段都不是整数,我怎样才能使它符合协议?dbName如果我知道它对于所有这个结构的出现都是唯一的,我可以使用吗?