Код ничего не печатает: он только вычисляет namesList и totalDistance. Список содержит восемь названий, сумма расстояний приблизительно равна 67.709.
Какой вывод получим? – вариант 28
Код ничего не печатает: он только вычисляет namesList и totalDistance. Список содержит восемь названий, сумма расстояний приблизительно равна 67.709.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В этом примере мы создаём структуру CelestialBody, содержащую название и расстояние от Солнца, формируем массив объектов и затем применяем к нему два стандартных алгоритма коллекций: map для получения списка названий и reduce для подсчёта общей суммы расстояний.
struct CelestialBody {
let designation: String
let orbitalRadius: Double
}
let bodies = [
CelestialBody(designation: "Mercury", orbitalRadius: 0.387),
CelestialBody(designation: "Venus", orbitalRadius: 0.722),
CelestialBody(designation: "Earth", orbitalRadius: 1.0),
CelestialBody(designation: "Mars", orbitalRadius: 1.52),
CelestialBody(designation: "Jupiter", orbitalRadius: 5.20),
CelestialBody(designation: "Saturn", orbitalRadius: 9.58),
CelestialBody(designation: "Uranus", orbitalRadius: 19.2),
CelestialBody(designation: "Neptune", orbitalRadius: 30.1)
]
let namesList = bodies.map { $0.designation }
let totalDistance = bodies.reduce(0) { $0 + $1.orbitalRadius }
Ответ
Код ничего не печатает: он только вычисляет namesList и totalDistance. Список содержит восемь названий, сумма расстояний приблизительно равна 67.709.
map сохраняет порядок исходного массива: Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune. reduce складывает orbitalRadius, начиная с нуля. Для десятичных исходных значений математическая сумма равна 67.709, но Double хранит двоичное приближение, поэтому точный текст вывода зависит от форматирования. Чтобы увидеть значения, нужно добавить print; в приведённом фрагменте таких вызовов нет.