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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With