如何解决这两个片段是等价的吗?
这两个片段是否相同?是否有可能在第一个 myClass 可以在应用程序生命周期的某个时刻被淘汰?
@NSApplicationMain
class AppDelegate: NSObject,NSApplicationDelegate {
private let myClass = MyClass()
func applicationDidFinishLaunching(_ aNotification: Notification) {
myClass.doSomething()
}
}
和
@NSApplicationMain
class AppDelegate: NSObject,NSApplicationDelegate {
private var myClass: MyClass?
func applicationDidFinishLaunching(_ aNotification: Notification) {
myClass = MyClass()
myClass?.doSomething()
}
}
解决方法
不,这两个片段是不等价的。您不能在 Swift 中重新分配 let
。在您的第二个片段中,该行:
private let myClass: MyClass?
应该是:
private var myClass: MyClass?
假设您的两个代码段不包含任何其他可以与变量交互的代码,那么它们将是相同的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。