Будет напечатано 3: множество содержит только уникальные Boris, Andrey и Arthur.
Какой результат выведет программа №9
Будет напечатано 3: множество содержит только уникальные Boris, Andrey и Arthur.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В этом задании рассматривается небольшой фрагмент кода на Swift. В нём создаётся множество строк, в которое последовательно добавляются несколько имён, некоторые из них повторяются. После всех вставок выводится количество элементов множества. Требуется определить, какое число будет напечатано.
import UIKit
var uniqueNames = Set<String>()
uniqueNames.insert("Boris")
uniqueNames.insert("Andrey")
uniqueNames.insert("Boris")
uniqueNames.insert("Arthur")
uniqueNames.insert("Boris")
print(uniqueNames.count)
Ответ
Будет напечатано 3: множество содержит только уникальные Boris, Andrey и Arthur.
Три вставки строки Boris не увеличивают число элементов после первого появления. Set использует хеширование и проверку равенства, чтобы не хранить равные значения повторно. Порядок элементов при перечислении не гарантирован, но count в этом примере однозначен. Если нужны и повторы, и последовательность добавлений, вместо множества подходит Array.