加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

嵌套的Swift词典

发布时间:2020-12-14 04:45:02 所属栏目:百科 来源:网络整理
导读:我想用嵌套在里面的字典初始化一个字典,如下所示: var a = [Int:[Int:Float]]()a[1][2] = 12 但是我收到一个错误: (Int:[Int:Float]) does not have a member named 'subscript' 我已经攻击了其他各种方法,所有这些方法都遇到了某种问题. 知道为什么这不起
我想用嵌套在里面的字典初始化一个字典,如下所示:

var a = [Int:[Int:Float]]()
a[1][2] = 12

但是我收到一个错误:

(Int:[Int:Float]) does not have a member named 'subscript'

我已经攻击了其他各种方法,所有这些方法都遇到了某种问题.

知道为什么这不起作用吗?

解决方法

您可以像这样创建自己的2D字典:

struct Dict2D<X:Hashable,Y:Hashable,V> {
    var values = [X:[Y:V]]()
    subscript (x:X,y:Y)->V? {
        get { return values[x]?[y] }
        set {
            if values[x] == nil {
                values[x] = [Y:V]()
            }
            values[x]![y] = newValue
        }
    }
}
var a = Dict2D<Int,Int,Float>()
a[1,2] = 12
println(a[1,2]) // Optional(12.0)
println(a[0,2]) // nil

重点是通过[x,y]而不是[x] [y]或[x]?[y]访问元素.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读