Estrutura em um único arquivo Swift?

votos
-1

Pode ser básico e errado, mas depois de entender estruturas não consigo entender onde colocá-lo na prática.

Dentro alguma classe chamá-lo Main, gostaria de encapsular um conjunto de variáveis para dimensões.

Eu sei que posso apenas fazer:

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

class Main
{
   //do things using the structure
}

Mas desde que eu tenho um monte de variáveis e eu quero-o limpo, eu gostaria de criar um novo arquivo Swift e colocá-lo dentro

Então, dentro de um arquivo chamado Dimensionsou então:

import Foundation

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

em seguida, a estrutura é visível para qualquer pessoa, mesmo sem usar o nome do arquivo Swift .

Algumas perguntas a fazer:

  1. Parece uma má idéia - por quê?
  2. Como é que é diferente de um Singeltone para compartilhar dados entre classes? (tipo de valor?)
  3. Qual é o lugar certo para colocar a estrutura fora da classe principal para obter algum código claro?
  4. Devo fazer um arquivo com muitos não relacionados Structs?
Publicado 08/11/2018 em 06:39
fonte usuário
Em outras línguas...                            


1 respostas

votos
3

em seguida, a estrutura é visível para qualquer pessoa

Isso não é verdade. Desde a sua estrutura não está marcada public, apenas o código no seu módulo pode acessá-lo. Mesmo se você escrevê-lo em um único arquivo, ainda é acessível em qualquer lugar em seu módulo.

mesmo sem usar o nome do arquivo Swift.

A razão por que você está dizendo isso pode ser porque em outros idiomas, é necessário importum arquivo de cabeçalho ou algo assim, se você quiser usar algo de outro arquivo (eu não sou um especialista em "outras línguas"). Mas Swift organiza seu código em unidades de módulos, não arquivos.

Parece uma má idéia - por quê?

Não é uma má idéia. Colocar tipos diferentes em diferentes arquivos é uma boa maneira de organizar seu código. Quando eu vou para Car.swifteu não esperaria para ver a classe Game.

Como é que é diferente de um Singeltone para compartilhar dados entre classes? (Tipo de valor?)

Aqui você está apenas escrevendo coisas em diferentes arquivos. Tanto quanto o compilador está em causa, este não é muito diferente de escrever tudo em um único arquivo, porque Swift organiza o código em módulos , não arquivos. O padrão Singleton é algo completamente diferente. É quando você só tem uma instância compartilhada de um tipo.

Qual é o lugar certo para colocar a estrutura fora da classe principal para obter algum código claro?

Em outro arquivo, porque Maindeve ser realmente em seu próprio arquivo.

Devo fazer um arquivo com Structs muitos não relacionados?

Não. Essa é uma maneira ruim de organizar seu código. Quando você quer encontrar um struct particular, como você sabe qual arquivo está em?

Respondeu 08/11/2018 em 07:14
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more