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
の例)のみを取得できます。 Swift: Get Variable Actual Name as String - -
同じ質問が2014年に頼まれたと私はそれ以来、SWIFT 2.
ありがとうございました。私の場合の実際の使用は、ユーザーが変数を宣言したときに、数学フレームワークをより使いやすくすることです。私は変数名を格納する必要があり、私はデフォルト名としてソースコードのリテラルを得ることができればよかったでしょう。もちろん、 'let x = Parameter(" x "、2)'は常にオプションですが、それほどエレガントではありません。 – dundee
@dundee問題は、いったん 'let y = x'と書いたらアイデアが壊れることです。関数からパラメータを返すのはどうですか?次に変数の名前は無名です... – Sulthan