Как стать автором
Обновить

Комментарии 18

Интересная статья, спасибо! Даже имея опыт разработки, нашел для себя некоторые интересные моменты с которыми не приходилось сталкиваться, но с которыми могу столкнуться в будущем.
Рад, что публикация оказалась полезной!
тип значение и не может иметь рекурсию на экземпляр самой себя

Может.

indirect enum Optional<T> {
    case some(T)
    case none
}

struct Node {
    var payload: Int
    var next: Optional<Node>
}

let node = Node(payload: 16, next: .some(Node(payload: 13, next: .none)))
Да, ценное замечание. Эта возможность появилась в Swift 5.0, а оригинал статьи писался под 4.2
В Swift 3 вроде появилась.

Картинка
image
Хотя, строго говоря, все ж нет. Ведь структура ссылается не на себя, а на перечисление, в которую изподвыподверта завернута структура. Но помнить об этой возможности полезно, не спорю.
В статье как бы Optional, который так же перечисление.
var next: Node?

Можно записать так.
var next: Optional<Node> = .none

И Optional который написал я, от свифтового Optional ничем не отличается.
Спасибо за полезные комментарии!
А я что-то
всё время невпопад )
«Разместите этот код над методом viewDidLoad():
let user = User(name: „John“)
… но оператор print внутри deinit не был исполнен. Значит, этот объект не был освобождён, так как он не вышел из области видимости (scope).»
Очень странно, вообще deinit сработает, так как область видимости у let user — viewDidLoad.
Спасибо за внимательное чтение, но «над методом» не означает «внутри метода» ) Впрочем, поправлю на «перед методом»
ааа все — это я очень «внимательно» читал=)
НЛО прилетело и опубликовало эту надпись здесь
Вообще, насколько я понимаю, тут два принципиально разных подхода: Garbage Collector vs. No Garbage Collector. JVM — я правильно понимаю, что там есть сборщик мусора? Ну не было его в Objective C, нет и в Swift. А чудес не бывает, прибирать за собой надо. Есть ARC — и на том спасибо, просто нужно знать его особенности.
Да, и, собственно ответ на вопрос
Swift — единственный язык из распространенных, который не умеет...

C++ достаточно распространён?
НЛО прилетело и опубликовало эту надпись здесь
Сборщика мусора там тоже нет, и есть также проблема циклических ссылок. Это, собственно, ответ на вопрос, «единственный ли такой урод Swift». )
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации