Я знаю, что Swift не использует пространства имен, но эти имена определены в каждом модуле. Во-первых, я не очень хорошо понимаю, как это позволяет избежать коллизий имен - не стесняйтесь уточнить.
Тем не менее, мой главный вопрос: скажем, мне нужна древовидная структура без использования NSTreeNode, поэтому я создаю свой собственный класс с именем «TreeNode». Теперь предположим, что Apple решила включить класс для построения деревьев в стандартную библиотеку Swift, и, как и ожидалось, они назвали его «TreeNode». Что тогда происходит? Мой пользовательский TreeNode будет конфликтовать с TreeNode стандартной библиотеки ... Придется ли мне менять весь свой код в таких случаях? Или, может быть, Apple пообещает, что стандартная библиотека Swift не изменится в будущем?
РЕДАКТИРОВАТЬ: ответ на вопрос здесь (спасибо @Martin R за ваш комментарий)