gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 22:01:00 24 4
gpt4 key购买 nike

我试图将类范围限制在函数内。这似乎有效:

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 版本中有一个错误,已经解决了。

关于swift - 在函数中使用@lazy 属性会导致构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24052352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com