Я относительно новичок в @ использовании Swift, так что это может дать очевидный ответ. Во всяком случае, я стараюсь избегать написания большого количества котлов для реализаций Equatable
, и мне интересно:
Если у меня есть список свойств, которые я хочу сравнить, есть ли какой-нибудь эффективный эквивалент этого приблизительного псевдокода, который работает быстро и правильно:
func .... == .... -> Bool {
let leftMirror = Mirror(reflecting: lhs)
let rightMirror = Mirror(reflecting: rhs)
let propertiesToCompare = [a list of strings to test]
for lchild in leftMirror.children {
if (lchild.label in propertiesToCompare) {
guard lchild.value == rMirror.descendant(lchild.label.value) else { return false }
}
}
return true
}