Назад к задачам
Junior — Senior
11

Что будет напечатано в консоли?

Компании, где спрашивали:

Вкусвилл АвтомаконВкусвилл Автомакон
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

В задаче рассматривается простая структура Person в Swift, содержащая одно свойство — имя. Создаётся три экземпляра структуры, после чего они помещаются в массив people. Далее имя первого объекта изменяется, а затем массив выводится в консоль. После этого меняется имя первого элемента массива, и массив снова выводится. Нужно понять, как изменятся значения в массиве после изменения переменных, учитывая, что структуры в Swift передаются по значению.

import Foundation

struct Person {
    var name: String

    init(name: String) {
        self.name = name
    }
}

func main() {
    var first = Person(name: "Alice")
    let second = Person(name: "Bob")
    let third = Person(name: "Charlie")

    var people = [first, second, third] as [Person]

    first.name = "John"

    for p in people {
        print(p.name)
    }

    people[0].name = "John2"

    for p in people {
        print(p.name)
    }
}

main()