swift lazy var with throw init behavior
发布时间:2020-12-14 05:28:39 所属栏目:百科 来源:网络整理
导读:我不确定它是不是一个错误,或者它确实是如何工作的? class A { init() throws { }}class B { lazy var instance = A()} 这段代码使用XCode 9和最新的Swift版本编译时没有错误,除非Class A init()真正抛出,否则lazy var是空指针.但不应该以某种方式编译这段
我不确定它是不是一个错误,或者它确实是如何工作的?
class A { init() throws { } } class B { lazy var instance = A() } 这段代码使用XCode 9和最新的Swift版本编译时没有错误,除非Class A init()真正抛出,否则lazy var是空指针.但不应该以某种方式编译这段代码?
这确实是一个错误(
SR-7862) – 你不能从属性初始化上下文中抛出错误(即使你可以,你也需要使用try来为调用添加前缀),因此编译器应该产生错误.
我已经打开了拉动请求来解决这个问题(#17022). 编辑:补丁现在已被挑选到4.2分支,所以它将被修复为使用Xcode 10发布Swift 4.2(直到发布你可以try a 4.2 snapshot). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |