2014-06-20 205 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