Какой алгоритм работает под капотом для «содержит» функцию swift? - PullRequest
0 голосов
/ 06 сентября 2018

Функция «Содержит» последовательности очень полезна, но я хочу спросить, какой именно алгоритм работает для нас под этой функцией?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Поскольку Swift является открытым исходным кодом, из реализации contains видно, что он выполняет итерацию по последовательности до тех пор, пока не найдет элемент, соответствующий предикату, в этом случае он вернет true и что он вернет false, если он достигает конца последовательности перед тем, как найти соответствующий элемент:

public func contains(
  where predicate: (Element) throws -> Bool
) rethrows -> Bool {
  for e in self {
    if try predicate(e) {
      return true
    }
  }
  return false
}
0 голосов
/ 06 сентября 2018

Swift с открытым исходным кодом, вы можете увидеть весь исходный код здесь https://github.com/apple/swift/

Источник для Sequence.swift здесь https://github.com/apple/swift/blob/master/stdlib/public/core/Sequence.swi

SequenceAlgorithms.swift здесь https://github.com/apple/swift/blob/master/stdlib/public/core/SequenceAlgorithms.swift

...