首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift2中的数组集

Swift2中的数组集
EN

Stack Overflow用户
提问于 2016-02-14 18:32:24
回答 1查看 70关注 0票数 0

嘿,我正在做一组数组,数组包含两个整数。

当我这么做

代码语言:javascript
复制
var points = Set<Array<Int>>();

我知道这个错误:

Array<Int>不符合hashable协议

我试着存储一些像[x,y] ie. [33, 45]这样的点

我不想使用2d数组,因为点的顺序并不重要,我希望能够通过值删除点(Set.remove[33,45])

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-14 18:42:48

与其在这种情况下使用数组,不如尝试创建一个struct

代码语言:javascript
复制
struct Point: Hashable {
    var x: Int
    var y: Int

    var hashValue: Int {
        get {
            return (31 &* x) &+ y
        }
    }
}

// Hashable inherits from Equatable, so you need to implement ==
func ==(lhs: Point, rhs: Point) -> Bool { 
    return lhs.x == rhs.x && lhs.y == rhs.y
}

var set = Set<Point>()
set.insert(Point(x: 33, y: 45))
print(set.count) // prints 1
set.remove(Point(x: 33, y: 45))
print(set.count) // prints 0
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35395512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档