加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 在函数中使用@lazy属性会导致构建错误

发布时间:2020-12-14 05:24:12 所属栏目:百科 来源:网络整理
导读:我试图将类范围限制在函数内.这似乎有效: func foo() { class MyClass { var s = "" }} 我可以在foo()函数中创建MyClass的实例. 但是,当我尝试将@lazy说明符添加到属性时…… func foo() { class MyClass { @lazy var s = "" }} …我收到以下构建错误: Glo
我试图将类范围限制在函数内.这似乎有效:
func foo() {
    class MyClass {
        var s = ""
    }
}

我可以在foo()函数中创建MyClass的实例.

但是,当我尝试将@lazy说明符添加到属性时……

func foo() {
    class MyClass {
        @lazy var s = ""
    }
}

…我收到以下构建错误:

  • Global is external,but doesn’t have external or weak linkage!
  • invalid linkage type for function declaration
  • LLVM ERROR: Broken module found,compilation aborted!

注意:如果我将类移出函数的作用域,代码将编译:

class MyClass {
    @lazy var s = ""
}

为什么会失败,这个错误应该如何解决?如果无法解决,是否有另一种方法在函数内部使用@lazy属性?

以下代码适用于我:
func foo() -> String {
    class bar {
        lazy var baz = "qux"
    }
    return bar().baz
}

foo() // prints "qux"

看起来早期的Swift laguage版本中有一个错误,已经得到了解决.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读