Выполнение следующего фрагмента кода на игровой площадке дает ошибку:
let a: [Int]? = [1,2]
let b: [Int]? = [1,2]
a == b // value of optional type '[Int]?' not unwrapped; did you mean to use '!' or '?'?
Выполняя что-то подобное для "более простого" необязательного типа, выполните:
var x: Int? = 10
var y: Int?
x == y // false
Какова аргументация по первому случаю, необязательных массивов, не допускается? Почему Swift сначала не видит, есть ли какая-либо сторона, если nil
(.None
), а затем, если это не так, выполните фактическое сравнение массива.