I have multiple sets of two arrays like that. I am getting them from a 3rd party.
var array1 : [Any?]
var array2 : [Any?]
I know about types of objects in these array (in compile time). As example that first element will be a String
and second is an Int
.
I currently compare each set of arrays like that (please notice that arrays aren't homogeneous).
array1[0] as? String == array2[0] as? String
array1[1] as? Int == array2[1] as? Int
...
The biggest problem that each set have different types in it. As result, I have let say 10 sets of arrays with 5 elements in each. I had to do 10*5 explicit conversion to specific type and comparation.
I want to be able to write a common method which can compare two arrays like that (without a need to specify all the types)
compareFunc(array1, array2)
I started to go down the road. However, I can't figure out what should I cast the objects too. I tried Equatable
. However, swift doesn't like direct usage of it. So, something like that doesn't work
func compare(array1: [Any?], array2: [Any?]) {
for index in 0..<array1.count {
if (array1[index] as? Equatable != array2[index] as? Equatable) {
// Do something
}
}
}
Each object in this array will be Equatable. However, I am not sure how to use it in this case.