Спасибо @ Александр! Моя ошибка - я надеюсь, что этот ответ полезен, несмотря на его правки.

чаю типы значений Swift, в частности, чтобы лучше понять его использование в другом сценарии. Я был поражен, увидев, как enum может быть использован для построения дерева двоичного поиска с использованиемindirect который вводит тонкий слой семантики ссылки.

enum BinarySearchTree<T: Comparable> {
  case empty
  case leaf(T)
  indirect case node(BinarySearchTree, T, BinarySearchTree)
}

Теперь перейду к реальному вопросу, что я пытаюсь найти: что будет с ссылочным типом внутри типа значения. Как будут работать отношения? как управление памятью, жизненный цикл объекта.

Например,

class B {
    var data: Int = 0

    deinit {
        print("deallocated!")
    }

}

struct A {
    var b = B()
}

В приведенном выше случае тип значения содержит ссылку на ссылочный тип.

Когда будетdeinit позвонят?Каждый новый экземпляр структуры типаA будет иметь ссылку на тот же экземпляр классаB или они будут другими.О чем мне нужно заботиться, или это запах кода?Что-нибудь еще?

Ответы на вопрос(2)

Ваш ответ на вопрос