2014-06-20 13 views
23

In Swift versuche ich die Funktionen max() und min() zu verwenden.iOS Swift max(), min()

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

Ich versuche, die max() Funktion auf diese Weise zu verwenden:

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

aber ich diese Störung erhalte:

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

Ist das nil dieses Problem verursacht? Was soll rest: T... sein?

+0

Die beschriebenen Min/Max sind in Swift integriert. Da die Erklärungen in der Frage enthalten waren, dachte ich, dass es eine Chance gibt, dass dies eine benutzerdefinierte Implementierung war. –

Antwort

32

Übergeben Sie nichts überhaupt dort. Es ist eine variadische Funktion, die Sie mit zwei oder mehr Parametern aufrufen können.

+4

so können Sie einfach 'max (paddleX, padel.frame.x/2)' – Thilo

+0

Danke, es funktioniert gut – junyi00

+0

:-) Interessant, dass zwei oder mehr Parameter zu 'max' und' min' zulässig sind, wenn sie erlauben könnten 1 oder mehr :-) – Benjohn