gpt4 book ai didi

swift - Swift 属性包装器实现中被包装对象的访问名称

转载 作者:行者123 更新时间:2023-12-03 09:19:53 35 4
gpt4 key购买 nike

我正在使用 Swift 属性包装器来定义类似的东西:

@MyWrapper var foo: Int

在属性包装器的实现中,我想以字符串的形式访问变量 foo 的名称。像这样的东西:
@propertyWrapper
public struct MyWrapper<Type> {
init() {
// Get access to "foo" -- name of var as String
}
}

建议?

最佳答案

将变量名传递给包装器;您可以使用这种替代方式。

@propertyWrapper
public struct MyWrapper<Type> {

var wrappedValue: ... {
set{.....}
get{.....}
}

init(wrappedValue initialValue: Double, _ nameOfTheVariable: String ) {
precondition(!nameOfTheVariable.isEmpty)
//you can access nameOfTheVariable here
}
}

然后像下面一样使用它,
   @MyWrapper("foo") var foo: Int

注意:在init方法中提到wrappedValue是必须的。除非,它对我不起作用。

(init( wrappedValueinitialValue:Double,_nameOfTheVariable:String))

关于swift - Swift 属性包装器实现中被包装对象的访问名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58575321/

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