2014-06-20 20 views
23

W Swift, próbuję użyć funkcji max() i 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 

Próbuję użyć funkcji max() w następujący sposób:

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

ale ja dostaję ten błąd:

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

Czy nil przyczyną tego problemu? Co to jest rest: T...?

+0

Opisane min/max są wbudowane w Swift. Ponieważ deklaracje zostały uwzględnione w pytaniu, pomyślałem, że jest szansa, że ​​jest to niestandardowa implementacja. –

Odpowiedz

32

Nie przekazuj niczego w ogóle. Jest to funkcja variadic, możesz wywołać ją z dwoma lub więcej parametrami.

+4

dzięki czemu można po prostu zrobić 'max (paddleX, paddle.frame.x/2)' – Thilo

+0

Dzięki, działa dobrze – junyi00

+0

:-) Interesujące jest, że dwa lub więcej parametrów są dozwolone do 'max' i' min', kiedy mogą pozwolić 1 lub więcej :-) – Benjohn

Powiązane problemy