gpt4 book ai didi

Swift:获取变量的编译时名称(引用类)

转载 作者:可可西里 更新时间:2023-11-01 01:36:29 27 4
gpt4 key购买 nike

有没有办法在 Swift 2 中获取变量的编译时名称?我的意思是第一个变量名,它引用了一个新的类实例,如果有的话。

这是一个简单的例子:

public class Parameter : FloatLiteralConvertible {
var name:String?
var value:Double
// init from float literal
public required init (floatLiteral value: FloatLiteralType) {
self.value = Double(value)
self.name = getLiteralName()
}
func getLiteralName () -> String {
var literalName:String = ""
// do some magic to return the name
return literalName
}
}

let x:Parameter = 2.0
print(x.value) // this returns "2.0"
print(x.name!) // I want this to return "x"

我已经检查过关于处理镜像或 Objective-C 反射的主题的类似问题。但在所有这些情况下,只能获取类中的属性名称 - 在上面的示例中 namevalue

同样的问题在 2014 年被问过 - Swift: Get Variable Actual Name as String- 我希望,从那时起,swift 2 就有了解决方案。

最佳答案

不,没有办法做到这一点。

你要明白,在编译状态下,这个变量通常是不存在的。它可以被优化掉,或者只表示为执行堆栈上的一个项目。

即使在 Swift 具有更好反射的语言中,通常您也无法检查局部变量。

老实说,动态获取局部变量的名称没有实际用例。

关于Swift:获取变量的编译时名称(引用类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36943853/

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