Есть ли эффективный способ динамического сравнения списка свойств stati c в Swift? - PullRequest
0 голосов
/ 09 мая 2020

Я относительно новичок в @ использовании 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
}
...