Структура в одном файле Swift? - PullRequest
0 голосов
/ 08 ноября 2018

Это может быть просто и неправильно, но после понимания структур я не могу понять, куда это практически поставить.

Внутри некоторого класса, назовите его Main, я бы хотел инкапсулировать набор переменных для измерений.

Я знаю, что могу сделать:

struct Dimensions{
var w:Int
var h:Int
}

class Main
{
   //do things using the structure
}

Но так как у меня много переменных и я хочу, чтобы они были чистыми, я бы хотел создать новый файл Swift и поместить его в

Итак, внутри файла с именем Dimensions или еще:

import Foundation

struct Dimensions{
var w:Int
var h:Int
}

тогда структура видна всем, даже без использования имени файла Swift .

Несколько вопросов:

  1. Вроде плохая идея - почему?
  2. Чем отличается Singeltone для обмена данными между классами? (тип значения?)
  3. Как правильно расположить структуру вне класса Main, чтобы получить некоторый понятный код?
  4. Должен ли я сделать один файл со многими не связанными Structs?

1 Ответ

0 голосов
/ 08 ноября 2018

тогда структура видна всем

Это не правда. Поскольку ваша структура не помечена public, только код в вашем модуле может получить к ней доступ. Даже если вы запишите его в один файл, он все равно будет доступен в любом месте вашего модуля.

даже без использования имени файла Swift.

Причина, по которой вы говорите это, может быть в том, что на других языках вам нужно import файл заголовка или что-то в этом роде, если вы хотите использовать что-то из другого файла (я не эксперт в "других языках" «). Но Swift организует свой код в единицах модулей, а не файлов.

Вроде плохая идея - почему?

Это неплохая идея. Помещение разных типов в разные файлы - хороший способ упорядочить ваш код. Когда я иду на Car.swift, я не ожидаю увидеть класс Game.

Как отличается от Singeltone для обмена данными между классами? (тип значения?)

Здесь вы просто пишете вещи в разных файлах. Что касается компилятора, это мало чем отличается от записи всего в одном файле, поскольку Swift организует код в модулях , а не в файлах. Паттерн Синглтон - это нечто совершенно другое. Это когда у вас есть только один общий экземпляр типа.

Как правильно расположить структуру вне класса Main, чтобы получить некоторый понятный код?

В другом файле, потому что Main действительно должен быть в своем собственном файле.

Должен ли я создать один файл со многими несвязанными структурами?

Нет. Это плохой способ организации вашего кода. Когда вы хотите найти конкретную структуру, как узнать, в каком она файле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...