2015-06-03 74 views
1

我想比較起來比較數組,如果2個數組是相等的,這裏是我的代碼:不同數組類型

var letteronloc = [String](); 
     letteronloc.append("test") 
    let characters = Array("test") 


    if(letteronloc == characters) { 

    } 

,但我有一個錯誤:無法找到==接受所提供的過載論據

我認爲它是因爲數組不相等,因爲第二個數組不是一個字符串數組。但我該如何解決這個問題?

+0

可能重複(http://stackoverflow.com/questions/27567736/compare-arrays-in- swift) – Icaro

+1

@IcaroNZ不,這不是,因爲我知道如何比較它們。唯一的問題是錯誤。 – da1lbi3

回答

5

let characters = Array("test")將字符串作爲序列 (字符),並創建通過枚舉序列的元素的數組。 因此characters是四個Character S, 相同的數組,你將與

let characters : [Character] = ["t", "e", "s", "t"] 

所以,你有不同的元素類型的兩個數組得到,這就是爲什麼 你不能與他們==比較。

如果你想用一個字符串「測試」的數組,然後把它寫成

let characters = ["test"] 

,你可以毫無問題地比較兩個數組。

1

你只需要指定所述第二陣列的類型:的[比較在迅速陣列]

var letteronloc = [String](); 
letteronloc.append("test") 
let characters: [String] = Array(arrayLiteral: "test") 

if (letteronloc == characters) { 

}