тогда структура видна всем
Это не правда. Поскольку ваша структура не помечена public
, только код в вашем модуле может получить к ней доступ. Даже если вы запишите его в один файл, он все равно будет доступен в любом месте вашего модуля.
даже без использования имени файла Swift.
Причина, по которой вы говорите это, может быть в том, что на других языках вам нужно import
файл заголовка или что-то в этом роде, если вы хотите использовать что-то из другого файла (я не эксперт в "других языках" «). Но Swift организует свой код в единицах модулей, а не файлов.
Вроде плохая идея - почему?
Это неплохая идея. Помещение разных типов в разные файлы - хороший способ упорядочить ваш код. Когда я иду на Car.swift
, я не ожидаю увидеть класс Game
.
Как отличается от Singeltone для обмена данными между классами? (тип значения?)
Здесь вы просто пишете вещи в разных файлах. Что касается компилятора, это мало чем отличается от записи всего в одном файле, поскольку Swift организует код в модулях , а не в файлах. Паттерн Синглтон - это нечто совершенно другое. Это когда у вас есть только один общий экземпляр типа.
Как правильно расположить структуру вне класса Main, чтобы получить некоторый понятный код?
В другом файле, потому что Main
действительно должен быть в своем собственном файле.
Должен ли я создать один файл со многими несвязанными структурами?
Нет. Это плохой способ организации вашего кода. Когда вы хотите найти конкретную структуру, как узнать, в каком она файле?