gpt4 book ai didi

ios - 为什么每个类都需要单独的 ".swift"文件?

转载 作者:IT王子 更新时间:2023-10-29 05:08:58 25 4
gpt4 key购买 nike

想知道您是否可以为我回答一个非常基本的初学者问题。我正在学习关于 Lynda 的 Cocoa + Swift 教程,我对类/对象有点困惑。

基本上,我想知道为什么我们必须为我们创建的每个新类创建一个新的 swift 文件。

据我所知,您可以在项目的任何 .swift 文件中创建一个新类。我的问题是,为什么我们必须不断地为每个新类创建 .swift 文件。

我想知道为什么不只有一个名为 AllClasses.swift.swift 文件,您可以在其中创建所有类,例如:

AllClasses.swift 中有以下代码:

Class FirstClass : NSObject
Class SecondClass : NSObject
Class ThirdClass : NSObject
Class FourthClass : NSObject

反对:

FirstClass.swift 中有以下代码:

Class FirstClass : NSObject

SecondClass.swift 中有以下代码:

Class SecondClass : NSObject

ThirdClass.swift 中有以下代码:

Class ThirdClass : NSObject

FourthClass.swift 中有以下代码:

Class FourthClass : NSObject

我只是想知道如果可以从项目的任何区域调用不同的代码,为什么我们需要将它们分离到文件中。对于 Mac 应用程序,似乎几乎所有事情都可以在 AppDelegate.swift 文件中完成。

这是一个愚蠢的问题,但可能使面向对象成为我难以完全掌握的概念的另一个障碍。

最佳答案

也许我可以用一种有点有趣的方式来解释它:

一开始没有文件的概念,所有代码都在一个实体中。此类实体中的代码由行号引用。因为一切都在一个地方,所以很容易找到你想要的东西,即使程序很小。这比穿孔胶带好,所以大家都很高兴。不过,我们必须做一些关于从磁带加载的事情。

但后来有人发现您可以将代码分解成称为模块 的单独部分,这与软件变得更大 一样好。伙计,我的 10MB 硬盘很大。 每个模块都是专家,并且可以调用其他专家。 它使您的代码更易于浏览。大家都很高兴。

但是后来有人发现了面向对象 (OO) 并且文件很便宜。程序如此之大,现在人们很难在包含 10000 多行的包含多个类的文件中找到模拟非洲燕子空速的类,也许是时候开始将每个类放在一起了在它自己的文件中。不用说,大家都很高兴。

然后软件变得如此庞大,以至于有人发现了源代码控制,当一群编码抄写员都在思考一个软件时,这是最重要的。兄弟会的疯狂确保他们粗心地努力在一个 30,000 多行的文件中编写程序(对非洲燕子的研究已经发展到包括欧洲燕子),即使使用 OO,也只会导致一行又一行的冲突在他们尝试将更改 checkin 源代码控制系统 期间。火刑柱上有很多东西在燃烧。后来的启示导致将代码分解成许多文本或文件是避免私刑的方法。

  • 总而言之,没有规定每个类必须有一个文件,但这样做是一种很好的做法,主要是在您的程序增长到任何合理的大小或复杂性时,导航和维护您的代码将成为如果你不这样做的话。
  • 在与团队合作时变得更加重要,因为随着同时处理任何给定文件的作者数量的增加,源代码提交冲突的可能性也会增加。

我相信僧侣们现在正在研究他们最喜欢的颜色和国家的首都。

关于ios - 为什么每个类都需要单独的 ".swift"文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com