У цій статті ви дізнаєтесь про за замовчуванням та іменовані аргументи за допомогою прикладів.
Аргумент Котліна за замовчуванням
У Kotlin ви можете вказати значення за замовчуванням для параметрів у визначенні функції.
Якщо функція викликається із переданими аргументами, ці аргументи використовуються як параметри. Однак якщо функція викликається без передачі аргументів, використовується аргумент за замовчуванням.
Як працюють аргументи за замовчуванням?
Випадок I: усі аргументи передано
Функція foo()
приймає два аргументи. Аргументи надаються зі значеннями за замовчуванням. Однак foo()
викликається шляхом передачі обох аргументів у вищезазначену програму. Отже, аргументи за замовчуванням не використовуються.
Значення букви та цифри буде 'x'
і відповідно 2 всередині foo()
функції.
Випадок II: Усі аргументи не передаються
Тут foo()
функції передається лише один (перший) аргумент . Отже, перший аргумент використовує значення, передане функції. Однак другий номер аргументу прийме значення за замовчуванням, оскільки другий аргумент не передається під час виклику функції.
Значення букви та числа буде 'y'
і відповідно 15 всередині foo()
функції.
Випадок III: Аргумент не передано
Тут foo()
функція викликається без передачі аргументів. Отже, обидва аргументи використовують значення за замовчуванням.
Значення букви та числа буде 'a'
і відповідно 15 всередині foo()
функції.
Приклад: Аргумент Котліна за замовчуванням
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( println("Output when no argument is passed:") displayBorder() println("'*' is used as a first argument.") println("Output when first argument is passed:") displayBorder('*') println("'*' is used as a first argument.") println("5 is used as a second argument.") println("Output when both arguments are passed:") displayBorder('*', 5) )
Коли ви запускаєте програму, результат буде:
Вихідні дані, коли не передано аргумент: =============== '' * 'використовується як перший аргумент. Вихідні дані, коли передано перший аргумент: *************** '*' використовується як перший аргумент. 5 використовується як другий аргумент. Вихідні дані, коли передано обидва аргументи: *****
Котлін назвав аргумент
Перш ніж говорити про іменований аргумент, давайте розглянемо невелику модифікацію наведеного вище коду:
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(5) )
Тут ми намагаємося передати другий аргумент displayBorder()
функції, а для першого аргументу використовуємо аргумент за замовчуванням. Однак цей код дасть помилку використання. Це тому, що компілятор вважає, що ми намагаємось надати 5 ( Int
значення) символу ( Char
типу).
Для вирішення цієї ситуації можуть бути використані іменовані аргументи. Ось як:
Приклад: аргумент Котліна
fun displayBorder(character: Char = '=', length: Int = 15) ( for (i in 1… length) ( print(character) ) ) fun main(args: Array) ( displayBorder(length = 5) )
Коли ви запускаєте програму, результат буде:
=====
У наведеній вище програмі ми використовуємо named argument ( length = 5
), вказуючи, що параметр length у визначенні функції повинен приймати це значення (не має значення положення аргументу).
Перший символ аргументу використовує значення '='
програми за замовчуванням .