Если вы впервые знакомитесь с этой серией, начните с здесь
Предыдущий пост, Часть 4, находится здесь
Теперь давайте продолжим наше путешествие, играя с функциями.
Общая идея функции заключается в том, что она принимает входные данные и выдает выходные данные. Итак, функция создается для определенной цели. Чтобы вызвать функцию, мы должны вызвать ее по имени.
Ранее я говорил о библиотечных функциях и пользовательских функциях, но не подробно.
Функции стандартной библиотеки Kotlin
main(), println(), print(), sqrt() — некоторые примеры библиотечных функций в Котлин. Эти функции являются встроенными функциями, предоставляемыми пакетом Kotlin.
Высматривать:-
kotlin-stdlib — язык программирования Kotlin (kotlinlang.org)
Вот код-
import kotlin.math.sqrt fun main(){ val n = 9.0 val p = 7 println(sqrt(n).toInt()) print(p) }
Здесь я использовал четыре библиотечных функции, а именно: main(), println(), print() и sqrt(). функция. Функция sqrt() принадлежит пакету kotlin.math. Пакет в Kotlin содержит необходимые классы и функции, предназначенные для конкретной задачи. Итак, нам нужно импортировать этот пакет в наш код, чтобы использовать функцию sqrt(), что я и сделал в строке 1.
Теперь обратите внимание, что я инициализировал число с плавающей запятой для переменной n, а затем передал эту переменную внутри функции sqrt(). Это связано с тем, что функция sqrt() принимает только переменные типа данных Float или Double. Думаю, остальной код вы понимаете😢.
Пользовательские функции
Помимо библиотечных функций, мы можем создавать свои собственные функции. Чтобы создать пользовательскую функцию, я буду использовать ключевое слово fun.
Вот код-
fun main(){ print(add(2, 2.5)) } fun add(x: Int, y: Double): Int { val sum = (x + y).toInt() return sum }
Давайте разбираться в коде. В строке 6 я создал функцию с именем add, которая принимает два параметра: x и y. . x имеет тип Int, а y имеет тип Double. Затем после скобок поставьте двоеточие и определите тип данных для возвращаемого значения функции. Это называется типом возврата функции. Я установил тип возвращаемого значения Int, что означает, что функция будет выводить результат в виде целого числа. Операторы, заключенные в фигурные скобки, относятся к функции add(). Это тело функции, в котором нам нужно написать строки кода, которые будут выполняться функцией.
После этого в строке 7 я создал переменную sum, в которой я написал выражение для оценки, то есть (x + y)и затем каким бы ни было исполняемое значение, оно преобразуется в Int с помощью функции toInt() и сохраняется в переменной sum.
Теперь, чтобы увидеть функциональность этой определяемой пользователем функции, нам нужно вызвать ее из нашей основной функции. Итак, я передал два аргумента: x как 2 и y как 2,5 через print( ) для вывода результата, полученного функцией add() (поскольку функция add() возвращает значение Int, а не печатает значение). Но только неотъемлемая часть, т. е. 4, будет напечатана, как показано выше.
ПРИМЕЧАНИЕ:- переменные, которые вы передаете при определении функции, называются параметрами, а значения переменных, которые вы передаете во время вызова функции, называются аргументами. Имя функции, ее параметры и возвращаемый тип вместе составляют подпись функции. Переменные, передаваемые в качестве параметров внутри функции, имеют тип val (что означает, что их нельзя переназначить).
В приведенном выше примере кода я передал два параметра. Но у меня есть возможность передать несколько параметров в зависимости от моего требования.
Вы, должно быть, заметили, что в функциях main(), print(); Я не указал возвращаемые типы. Это потому, что эти функции не дают никакого значимого значения. Они просто распечатывают это. В приведенном выше случае все выполнение выполняется функцией add(), а функция main() просто печатает сумму. В терминах программирования мы говорим, что это null/ void/ пустые/ невозвратные функции. В Kotlin мы можем указать тип возвращаемого значения null, набрав Unit.
Посмотри на это-
Вот код-
fun main(): Unit{ print(2 + 8) }
Видите ли, я явно указал тип возвращаемого значения в функции main(), введя Unit после двоеточия ( : ). Но это не рекомендуется, потому что Котлин запрещает, потому что он умный😎 (он знает, что это функция void).
Всякий раз, когда вы пишете свои собственные функции, просто называйте их правильно. Имейте описательные имена, потому что это облегчает понимание всей нашей структуры кода другими программистами и даже вами.
Встроенные функции в Kotlin
Kotlin позволяет нам определить функцию в одной строке, если тело функции содержит одно выражение.
Посмотрите на картинку ниже-
Вот код-
fun main(){ print(square(14)) } fun square(n: Int) = n * n
Посмотрите непосредственно на строку 5, где я создал функцию с именем square(), которая принимает только параметр типа Int. Тогда в теле функции есть только одно выражение, то есть n * n (что математически равно n-квадрату). Таким образом, без фигурных скобок мы можем написать выражение сразу после знака равенства (=). Затем из основного метода вызывается функция для нахождения квадрата 14, т. е. 196 (если у вас слабая математика, пожалуйста, изучите как можно скорее🙂).
Аргументы по умолчанию в функции
Давайте посмотрим на картинку ниже: -
fun main(){ hello(7) } fun hello(number: Int){ for (i in 1..number){ println("Hello") } }
В приведенном выше коде я создал функцию с именем hello, которая принимает число типа Int, которое печатает Hello столько раз. Затем функция вызывается из основной функции и передается 7. Итак, Hello печатается 7 раз.
Что, если пользователь не передал никаких аргументов во время вызова функции? И когда это происходит, я хочу напечатать Hello как минимум 3 раза. Для этого мы передадим внутрь нашей функции аргумент по умолчанию.
fun main(){ hello() } fun hello(number: Int = 3){ for (i in 1..number){ println("Hello") } }
Вы можете видеть, что в нашей функции с именем hello я передал аргумент по умолчанию, равный 3. А в основной функции функция hello вызывается без каких-либо параметров. Но тем не менее, мы получаем вывод как Hello, напечатанный трижды из-за нашего аргумента по умолчанию.
Оооо… Слишком много!!!
→ Продолжить путешествие к Часть 6
Спасибо, что прочитали…
✍️Аджит Кумар Саху