你可以在字典中使用数组作为键吗?

时间:2014-11-17 04:03:44

标签: ios dictionary swift

我最初有一个我认为唯一的字符串列表,所以我构建了一个字典并将该字符串列表用作值。 示例:[contact1,contact2,contact3]

然而,我意识到字符串不是唯一的,但是2个字符串的组合是。 示例:`[[contact1,contact1],[contact1,contact2],[contact2,contact2] ...]

因为我有2个独特的对象,我想用作字典键,我可以使用字符串数组作为字典键吗?

假设我不能,如果我的字符串不包含逗号,我想我可以合并它们并用逗号分隔。不好主意?

3 个答案:

答案 0 :(得分:2)

是:

let x = [["a1", "a2"]:"1", ["b1", "b2"]:"2"]
println("x: \(x)")

let v = x[["a1", "a2"]] as String
println("v: \(v)")

输出:

x: {
        (
        b1,
        b2
    ) = 2;
        (
        a1,
        a2
    ) = 1;
}

v: 1

答案 1 :(得分:2)

您可以使用任何Hashable类型作为字典键--Swift的内置Array类型不可以播放,但由于NSObject是, Swift数组静默连接到Objective-C数组,您可能会无意中使用NSArray作为键。

答案 2 :(得分:-1)

我认为这是不可能的。

您可以使用contact1_contact1,contact1_contact2,contact2_contact2

之类的字符串