2017-08-01 32 views
2

我寫一個接受的任何一個數組的函數:使用swift接受元組的正確參數類型是什麼?

func getRandomMember(from:[Any]) { 

但是當我通過它元組的數組:

getRandomMember([(1,1), (-1,1), (-1,-1), (1, -1)]) 

的Xcode告訴我,這是一個錯誤:

[(Int, Int)] is not convertable to [Any]. 

AnyObject也不起作用。那麼我應該使用什麼類型作爲參數類型?

+2

你應該爲此使用Swift泛型? – Cesare

+0

如果你正在使用'Any',那麼你仍然在做錯。 – Sulthan

回答

3

當我在遊樂場測試你的代碼時,它工作得很好。我想你只是忘了添加參數標籤from

getRandomMember(from: [(1,1), (-1,1), (-1,-1), (1, -1)]) 

然而,儘管上述作品,我覺得這裏使用泛型這裏是一個更好的選擇。您可以一般地聲明您的功能:

func getRandomMemeber<T>(from array: [T]) -> T 

這樣,您不需要將返回的值轉換爲所需的類型。

+0

不,我沒有忘記在我的代碼中添加'from'。這很奇怪,或許與快速版本有關?無論如何,仿製藥工作正常。謝謝! – NeoWang

相關問題