Kotlin в IntelliJ IDEA Kotlin змінні Kotlin типи даних Kotlin операції з числами Kotlin умовні вирази Kotlin умовні конструкції Kotlin цикли Kotlin послідовності Kotlin масиви Kotlin функціональне програмування Kotlin змінна кількість параметрів. Vararg Kotlin повернення результату. оператор return Kotlin однорядкові і локальні функції Kotlin перевантаження функцій Kotlin Лямбда-вирази Kotlin функції вищого порядку Kotlin Анонімні функції Kotlin ООП Класи і об'єкти Kotlin ООП властивості Kotlin ООП конструктор Kotlin ООП функції в класах Kotlin ООП Пакети та імпорт Kotlin ООП модифікатори видимості Kotlin ООП вкладені класи Kotlin ООП інтерфейси Kotlin ООП спадкування Kotlin ООП Перевизначення методів і властивостей Kotlin ООП Абстрактні класи та методи Kotlin ООП Data-класи Kotlin ООП перерахування enums Kotlin ООП Null і nullable-типи Kotlin ООП Обробка винятків Kotlin ООП перетворення типів Kotlin ООП Інфіксна функція Kotlin ООП функції розширення Kotlin ООП Узагальнені класи і функції Kotlin ООП обмеження узагальнень Kotlin ООП Варіантність, коваріантність і контраваріантність Kotlin Колекції. Змінювані і незмінні колекції Kotlin Колекції. LIST список Kotlin Колекції. Set Kotlin Колекції. Map

Kotlin ООП Інфіксна функція


Інфіксна нотація приміщення оператора або функції перед операндами або аргументами.

Інфіксне функція формально приймає два параметри. Перший параметр представляє об'єкт, який викликає функцію. А другий параметр - дані, які безпосередньо будуть передаватися функції при її виклику.

Інфіксна функція визначається тільки всередині класу. Наприклад, нехай у нас є клас банківського рахунку, в якому визначена функція додавання коштів на рахунок:

class Account(_sum: Int) {
    var sum = _sum
 
    infix fun put(amount: Int): Unit{
        this.sum = this.sum + amount
    }
}

Для визначення інфіксной функції в її заголовку вказується ключове слово infix . Функція приймає один параметр - суму, яка додається на рахунок.

Використовуємо даний клас:

var acc = Account(340)
acc.put(300)
println(acc.sum)    // 640
acc put 300
println(acc.sum)    // 940

Оскільки функція put є інфіксной, то ми можемо викликати її як звичайну функцію: acc.put(300) . А можна викликати таким ось чином: acc put 300 .


Наш партнер:
beta test mp3 playlist downloader