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

时间:2016-04-29 17:01:08

标签: swift swift2

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

这是一个简单的例子:

column

我已经检查了有关处理镜像或客观反思的主题的类似问题。但在所有这些情况下,只能在类中获取属性名称 - 在上面的示例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" name中。

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

1 个答案:

答案 0 :(得分:2)

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

你必须明白,在编译状态下,变量通常不存在。它可以被优化,或者仅表示为执行堆栈上的项目。

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

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