3
我試圖在編譯時評估一個函數的簽名。給定一個函數,我想獲得Type
。從方法簽名獲取arg類型(鏡像/反射/自檢?)
例如:
func f(a: Int, b: Int) -> Int{
return 1
}
let y = Mirror(reflecting: f)
let types = y.subjectType
print(types)
我回去:
"(Int, Int) -> Int"
這是我以字符串形式need--!我需要他們的類型形式。意圖用法:
let unknownA: AnyObject = 1
let unknownA: AnyObject = 2
// The casts (here 'Int') are derived from the mirror above
f(a: Int(unknownA), b: Int(unknownB))
編輯:哈哈!在看起來像整整一天的挖掘之後,我發現了this寶石。當我有它的工作時,將發佈一個工作示例。
多數民衆贊成至於我爲好。使用任意數量的參數處理函數不會很順利,但我會繼續。謝謝! – Damouse
這非常有創意,但我們真的需要真實的反思,有些人認爲Swift 4會來。 – clearlight