您知道使用Swift编程语言阻止对象构建的方法有哪些?
在C++中,我可以简单地将构造函数设为私有,如下所示:
struct A {
private:
A() {};
};
int main()
{
// Doesn't compile because the constructor is private.
A obj;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我在Swift中做类似的事情(我在游乐场尝试过)时,代码编译得很好:
class A {
private init() {}
}
let obj = A()
Run Code Online (Sandbox Code Playgroud)
更新:
好的,这个问题被标记为重复.但我认为这是一种误解.我要问的是,你知道什么是防止Swift中的对象构建的最佳实践.我想要达到的目的是让我的班级用户明白它不应该是可构造的.
更新2:
由于这个问题仍然存在,我认为,对于那些仍然无法理解我真正想要的人,需要更多的澄清.
给定一个类作为一些有用常量的包装器,如下所示:
class Constants {
static let someConstant1 = "CONSTANT_VALUE1"
static let someConstant2 = "CONSTANT_VALUE2"
//....etc...
}
Run Code Online (Sandbox Code Playgroud)
什么选项可以被视为最佳实践:
private init() {}以防止在当前文件之外创建对象;init?和返回nil表示不能按照注释中的建议创建对象.希望现在的问题更清楚了.