In
kotlin, you can call functions in infix notation. Infix functions are defined using the keyword
‘infix’. Infix functions must have a single parameter.
You
can make a function as infix function, if the function
a.
Is
a member function (or) extension function
b.
Has
only single parameter
c.
Is
marked with keyword infix
Infix member function
class EvenNumber { infix fun isEven(num: Int): Boolean { if (num % 2 == 0) return true return false } }
As
you see isEven is defined as infix function using the keyword infix.
How to call isEven
function?
var
is5Even = obj isEven 5 // Same can be
called obj.isEven(5)
InfixDemo.kt
class EvenNumber { infix fun isEven(num: Int): Boolean { if (num % 2 == 0) return true return false } } fun main(args: Array<String>) { var obj = EvenNumber() var is5Even = obj isEven 5 // Same can be called obj.isEven(5) var is6Even = obj isEven 6 // Same can be called obj.isEven(5) println("Is 5 even number $is5Even") println("Is 6 even number $is6Even") }
Output
Is 5 even number false Is 6 even number true
Infix extension
funcitons
In
kotlin, you can extend the functionality of a class, by using extension
functions.
For
example, below code add doubleEven function to the class EvenNumber.
infix fun EvenNumber.doubleEven(num: Int): Int { if (isEven(num)) { return num * 2 } return -1 }
InfixDemo.kt
class EvenNumber { infix fun isEven(num: Int): Boolean { if (num % 2 == 0) return true return false } } infix fun EvenNumber.doubleEven(num: Int): Int { if (isEven(num)) { return num * 2 } return -1 } fun main(args: Array<String>) { var obj = EvenNumber() var double6 = obj doubleEven 6 // Same can be called obj.doubleEven(5) println("Double 6 $double6") }
Output
Double 6 12
No comments:
Post a Comment