Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set a variable to the < ("less than") operator as a function in Swift?

Tags:

swift

There's a neat guide here about overloading operators in Swift, but it doesn't say anything about treating operators as functions that I can pass around as variables like any other function. I want to do something like var comparator = (<) to set a variable to the < function, but every syntax I've tried hasn't worked, and the Swift Programming Guide doesn't mention anything relevant. I know how to achieve a similar effect with a lambda expression, but that's messy. How can I set a variable to the < function?

like image 908
sudo Avatar asked May 03 '15 17:05

sudo


1 Answers

If you give comparator an explicit type, then it will work.

var comparator: (Int, Int) -> Bool = (<)

or

var comparator: (Double, Double) -> Bool = (<)

Less than < isn't a single function, but a whole collection of them for different types. By identifying the type you are interested in comparing, you allow the compiler to select the correct less than function.

like image 200
vacawama Avatar answered Oct 15 '22 09:10

vacawama