我想比较两个数组是否相等,这是我的代码:
var letteronloc = [String]();
letteronloc.append("test")
let characters = Array("test")
if(letteronloc == characters) {
}
但我有一个错误:找不到接受提供的参数的<=的重载
我认为这是因为数组不相等,因为第二个数组不是字符串数组。但我该如何解决这个问题呢?
答案 0 :(得分:5)
let characters = Array("test")
将字符串视为序列
(字符)并通过枚举序列的元素来创建数组。
因此characters
是一个包含四个Character
的数组,
与你得到的相同
let characters : [Character] = ["t", "e", "s", "t"]
所以你有两个不同元素类型的数组,这就是原因
你无法将它们与==
进行比较。
如果您想要一个包含单个字符串“test”的数组,请将其写为
let characters = ["test"]
你可以毫无问题地比较两个数组。
答案 1 :(得分:1)
您只需指定第二个数组的类型:
var letteronloc = [String]();
letteronloc.append("test")
let characters: [String] = Array(arrayLiteral: "test")
if (letteronloc == characters) {
}