单个 Swift 文件中的结构?

0 struct swift

它可能是基本的和错误的,但在理解结构之后,我不知道实际上应该把它放在哪里。

在某个调用它的类中Main,我想封装一组维度变量。

我知道我可以这样做:

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

class Main
{
   //do things using the structure
}
Run Code Online (Sandbox Code Playgroud)

但由于我有很多变量并且我希望它干净,所以我想创建一个新的 Swift 文件并将其放入其中

Dimensions所以在一个名为or else的文件中:

import Foundation

struct Dimensions{
var w:Int
var h:Int
}
Run Code Online (Sandbox Code Playgroud)

那么该结构对任何人都是可见的,甚至无需使用 Swift 文件名

有几个问题要问:

  1. 这似乎是个坏主意——为什么?
  2. Singeltone 与类之间共享数据有什么不同?(值类型?)
  3. 将结构放在 Main 类之外以获得一些清晰的代码的正确位置是什么?
  4. 我应该制作一个包含许多不相关文件的文件吗Structs

Swe*_*per 5

那么该结构对任何人都是可见的

那不是真的。由于您的结构未标记public,因此只有模块中的代码可以访问它。即使您将其写入一个文件中,仍然可以在模块中的任何位置访问它。

甚至不使用 Swift 文件名。

你这么说的原因可能是因为在其他语言中,import如果你想使用另一个文件中的东西,你需要一个头文件或类似的东西(我不是“其他语言”的专家)。但 Swift 以模块为单位组织代码,而不是以文件为单位。

这似乎是个坏主意——为什么?

这不是一个坏主意。将不同类型放在不同的文件中是组织代码的好方法。当我去的时候,Car.swift我没想到会看到班级Game

在类之间共享数据与 Singeltone 有什么不同?(值类型?)

在这里,您只是在不同的文件中写入内容。就编译器而言,这与将所有内容写入单个文件中没有太大区别,因为 Swift 在模块而不是文件中组织代码。单例模式是完全不同的东西。这是当您只有一个类型的一个共享实例时。

将结构放在 Main 类之外以获得一些清晰的代码的正确位置是什么?

在另一个文件中,因为Main实际上应该在它自己的文件中。

我应该制作一个包含许多不相关结构的文件吗?

不,这是一种糟糕的组织代码的方式。当您想查找特定结构时,如何知道它位于哪个文件中?