相关疑难解决方法(0)

从Swift中删除数组中的重复元素

我可能有一个如下所示的数组:

[1, 4, 2, 2, 6, 24, 15, 2, 60, 15, 6]

或者,实际上,任何类似数据类型的序列.我想要做的是确保每个相同的元素只有一个.例如,上面的数组将变为:

[1, 4, 2, 6, 24, 15, 60]

请注意,删除了重复的2,6和15,以确保每个相同的元素只有一个.Swift是否提供了一种轻松完成此操作的方法,或者我自己必须这样做?

arrays standard-library swift

222
推荐指数
22
解决办法
13万
查看次数

如何在Swift中为Int数组实现Hashable Protocol(自定义字符串结构)

我正在创建一个类似于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)

arrays string hashtable ios swift

40
推荐指数
2
解决办法
3万
查看次数

make struct Hashable?

我正在尝试创建一个类型的字典,[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如果我知道它对于所有这个结构的出现都是唯一的,我可以使用吗?

dictionary hashable swift swift3

31
推荐指数
2
解决办法
6976
查看次数