У овом чланку ћете научити да користите инфиксну нотацију за позивање функције у Котлину (уз помоћ примера).
Пре него што научите како да креирате функцију која има инфиксни запис, истражимо две најчешће коришћене инфикс функције.
Када користите ||
и &&
операције, преводилац тражи функције и и и функције и позива их испод хаубе.
Ове две функције подржавају инфиксну нотацију.
Пример: Котлин или & и функција
fun main(args: Array) ( val a = true val b = false var result: Boolean result = a or b // a.or(b) println("result = $result") result = a and b // a.and(b) println("result = $result") )
Када покренете програм, излаз ће бити:
резултат = тачно резултат = нетачно
У горњој програму a or b
уместо a.or(b)
и a and b
уместо a.and(b)
користи. То је било могуће јер ове две функције подржавају инфиксну нотацију.
Како створити функцију са инфиксним записом?
Можете да упутите позив функције у Котлину користећи инфиксну нотацију ако функција
- је функција члана (или функција проширења).
- има само један једини параметар.
- је означена
infix
кључном речи.
Пример: Кориснички дефинисана функција са Инфик нотацијом
class Structure() ( infix fun createPyramid(rows: Int) ( var k = 0 for (i in 1… rows) ( k = 0 for (space in 1… rows-i) ( print(" ") ) while (k != 2*i-1) ( print("* ") ++k ) println() ) ) ) fun main(args: Array) ( val p = Structure() p createPyramid 4 // p.createPyramid(4) )
Када покренете програм, излаз ће бити:
* * * * * * * * * * * * * * * *
Овде createPyramid()
је инфиксна функција која ствара пирамидну структуру. То је функција члана класе Structure
, узима само један параметар типа Int
и започиње са кључном речи infix
.
Број редова пирамиде зависи од аргумента прослеђеног функцији.