2014-06-20 202 views
23

在Swift中,我試圖使用max()和min()函數。iOS Swift max(),min()

max<T : Comparable>(x: T, y: T, rest: T...) -> T 
min<T : Comparable>(x: T, y: T, rest: T...) -> T 

我試圖使用MAX()函數以這種方式:

var paddleX: Int = Int(paddle.position.x) + Int(location.x - previousLocation.x) 
max(paddleX, paddle.frame.x/2, nil) 

,但我收到此錯誤:

Cannot convert the expression's type of '()' to type 'NilType'

是在nil造成這個問題? rest: T...應該是什麼?

+0

描述的最小/最大內置於Swift中。由於聲明包含在問題中,我認爲這是一個自定義實現的機會。 –

回答

32

不要傳遞任何東西。這是一個可變參數函數,您可以使用兩個或更多個參數來調用它。

+4

所以你可以'max(paddleX,paddle.frame.x/2)' – Thilo

+0

謝謝,它運作良好 – junyi00

+0

:-)有趣的是,兩個或多個參數允許'最大'和'最小'時,他們可以允許1或更多:-) – Benjohn