2014-06-20 20 views
23

Trong Swift, tôi đang cố gắng sử dụng các hàm max() và 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 

Tôi cố gắng để sử dụng tối đa) chức năng (theo cách này:

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

nhưng tôi nhận được lỗi này:

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

nil gây ra vấn đề này? rest: T... là gì?

+0

Min/tối đa được mô tả được tích hợp vào Swift. Kể từ khi các tờ khai được đưa vào câu hỏi, tôi nghĩ có khả năng đây là một triển khai tùy chỉnh. –

Trả lời

32

Đừng bỏ qua bất kỳ điều gì ở đó. Đó là một hàm variadic, bạn có thể gọi nó bằng hai hoặc nhiều tham số.

+4

vì vậy bạn chỉ có thể làm 'max (paddleX, paddle.frame.x/2)' – Thilo

+0

Cảm ơn, nó hoạt động tốt – junyi00

+0

:-) Thú vị rằng hai hoặc nhiều tham số được phép 'max' và' min' khi chúng có thể cho phép 1 hoặc nhiều hơn :-) – Benjohn

Các vấn đề liên quan