swift - 在 Swift 中定义常量
问题描述
我注意到在 Swift 中定义常量的非常流行的技术如下所示:
struct Constants {
static let fileDownloadTimeOut: TimeInterval = 45 * 60
static let timeout: TimeInterval = 60
static let perPageCount = 10
static let usersPerPageCount = 15
}
从一个角度来看 - 它在语法方面看起来非常整洁和漂亮。但是,我发现的问题是静态变量的大量使用。
据我所知,static
变量的行为方式Swift
与C++
. 这些变量在编译期间被初始化并保留在内存中直到应用程序死掉。
接下来是我用这种方法发现的问题:
1) 污染RAM
。我知道开发人员保存内存的每个字节的时代已经过去,但这并不意味着我们不应该正确维护我们的存储资源。
2)我有很大的背景,C++
我发现这种技术是一种“坏品味”。我总是不鼓励将static
变量用于“语法糖”,这就是为什么我习惯于static
仅在绝对需要时才创建变量。
问题是 - 我在网上搜索了很长时间,以找到一些其他建议来很好地定义常量Swift
,但我发现除了这种带有一堆静态变量的结构的方法之外,我什么也没找到。
static let
当涉及到创建Singleton
或永远存在直到应用程序死亡的对象时,我理解使用常量的方法。但是我注意到,这种确切的方法也被推荐用于视图控制器或其他临时对象,从逻辑上讲这是错误的。
我是否对这种趋势反应过度,这是其他开发者社区改变和接受的事情之一?我希望能得到一些意见。
提前致谢!
解决方案
推荐阅读
- java - 在 jFrame 的同一个 x 轴上创建 2 个按钮
- c++ - VSCode 中的样板文件
- python - 我在安装 python 时遇到问题
- python-3.x - python - 如何在python3上使用XPATH获取另一个div,其中包含特定文本的div?
- python - python groupby使用比较器函数/ lambda而不是键函数
- node.js - 在运行 nextjs 服务器时出现 TypeError
- javascript - 使用 Javascript 验证身份验证代码
- algorithm - 带插入功能的归并排序
- android - 如何限制 TextView 的大小?
- python - 克隆存储库后 Virtualenv 不起作用