1
有没有办法在Swift 2中获取变量的编译时间名称? 我的意思是第一个变量名,它引用了一个新的类实例,如果有的话。Swift:获取变量的编译时间名称(引用一个类)
下面是一个简单的例子:
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的思考类似的问题。但在所有这些情况下,只能获得班级中的房产名称 - 在name
和value
以上的示例中。
同样的问题已经被问在2014年 - Swift: Get Variable Actual Name as String - 我希望,因为再有就是迅速2.
谢谢,很高兴知道。在我的情况下,实际用法是在用户声明变量时使数学框架更加用户友好。我需要存储变量名称,如果我可以将源代码字面量作为默认名称,那将会很不错。当然,编写'let x = Parameter(“x”,2)'总是一个选项,但不是那么优雅。 – dundee
@dundee问题是,一旦你写'let y = x',你的想法就会崩溃。那么从函数返回一个参数呢?然后变量是未命名的... – Sulthan