2016-11-19 85 views

回答

5

可以讓斯威夫特由f2明確類型的註釋推斷function2專業化:

let f2: (Int) -> Int = function2 

或者使用其提供明確的類型標註

func specialize1Dmap<T>(_ f: @escaping (T) -> T, as _: T.Type) -> (T) -> T { return f } 
let f2int = specialize1Dmap(function2, as: Int.self) 
let f2str = specialize1Dmap(function2, as: String.self) 
+1

大中間專用函數的功能!而且,如果我將函數2的參數傳遞給類型爲(Int) - > Int的參數是必需的,那麼同樣的事情會起作用。謝謝@dfri。 – Verticon

相關問題