Объявление функций
Декомпозиция программы
Kotlin поддерживает функции, что очень полезно. Функция — это последовательность инструкций, собранных вместе для работы. В некотором смысле это своего рода подпрограмма. У функции есть имя, поэтому вы можете вызвать её, когда вам это нужно. Стандартная библиотека Kotlin имеет множество функций, например println. Если их недостаточно, вы можете объявить новую функцию, а затем вызвать её так же, как стандартную функцию.
Функции могут разделить программу на небольшие части, которые можно использовать повторно. Это называется декомпозиция. Вы можете вызывать эти фрагменты столько раз, сколько вам нужно, вместо того, чтобы повторять их. Разложенная программа имеет модульную структуру, её легче модифицировать и поддерживать, чем программу с одной main функцией, которая содержит тысячу строк. Эта идея исходит из процедурного программирования.
Базовый синтаксис
Чтобы объявить новую функцию, вам необходимо указать ключевое слово fun и имя функции, список параметров в круглых скобках и тип результирующего значения. Это выглядит так:
fun functionName(p1: Type1, p2: Type2): ReturnType {
// тело функции
return result
}Функция состоит из следующих компонентов:
имя, которое соответствует тем же правилам и рекомендациям, что и имя переменной
список параметров в круглых скобках. Каждый параметр имеет имя и тип, разделенные двоеточием
:. Все параметры разделяются запятыми,тип возвращаемого значения (необязательно)
тело функции, содержащее инструкции и выражения
ключевое слово
return, за которым следует результат (также необязательно).
Типы параметров и результат могут быть любого типа, включая Int, Double, Boolean, String и так далее.
Объявление простой функции
Давайте объявим функцию, которая вычисляет сумму целых чисел, а затем вызывает ее.
Когда мы вызываем нашу функцию в первый раз, мы передаем ей два значения 2 и 5. Мы присваиваем им параметры a и b соответственно. Функция возвращает значение результата. Тип result совпадает с типом возвращаемого значения, объявленного в функции (Int). Когда мы вызываем функцию во второй раз, мы передаем значение result1, 7 и 4 в качестве её аргументов. Функция возвращает значение 11.
!> Доступ к аргументам функции возможен только в самой функции.
Параметры функции
Как вы, наверное, знаете, параметры представляют собой входные данные функции. Вы можете объявить функцию, которая принимает один или несколько параметров одного или разных типов. Кроме того, вы можете объявить функцию, у которой вообще нет параметров, но круглые скобки все равно обязательны.
Вот несколько примеров:
Как вы можете видеть, мы можем вызвать функцию из основной функции, но также возможно вызвать функцию из другой обычной функции.
Вы так же можете поставить запятую в конце списка параметров. Это может быть очень полезно, если у вас много аргументов или вы используете многострочный синтаксис, потому что вы можете легко копировать и вставлять переменные:
Возвращаемый тип
Функция может возвращать одно значение или ничего. Если функция возвращает что-то, в ее теле должно быть ключевое слово return, за которым следует результат. Иногда вам нужна функция, которая ничего не возвращает. Есть два способа объявить функцию, которая ничего не возвращает:
опустите часть возвращаемого типа:
укажите специальный тип
Unitв качестве возвращаемого типа:
Тело функции
Вы можете писать любые инструкции в теле функции, например, внутри main функции. В дополнение к параметрам вы можете объявлять новые переменные, которые видны только в функции.
Например, эта функция извлекает последнюю цифру числа, а затем возвращает ее.
Вы можете упростить этот код, исключив дополнительную переменную:
Вы можете выполнять любые операции в теле функции. Например, эта функция использует реляционную операцию. Он проверяет, является ли число положительным или нет:
Функция isPositive принимает целое число и возвращает Boolean значение, поскольку результат выражения number > 0 равен либо true, либо false.
Взгляните еще на один пример. Строка после оператора return не будет выполнена (так называемый недостижимый код). Эти строки загромождают вашу программу:
Функции с одним выражением
Если функция возвращает одно выражение, вы можете записать его без фигурных скобок:
Указание возвращаемого типа необязательно, так как оно может быть определено автоматически:
Идиомы
Функция с одним выражением является идиоматической. Они полезны, когда вам нужна небольшая функция для выполнения чего-то вроде проверки простого условия. Если ваша функция возвращает только одно выражение, попробуйте придерживаться этой формы. Вы также можете опустить возвращаемый тип, так как компилятор часто может вывести его из контекста. Посмотрите на пример. Функция с одним выражением короче и понятнее. Поначалу этот синтаксис может показаться неудобным, но если вы будете использовать его часто, он покажется вам очень удобным:
Заключение
Функция Kotlin - это особый вид выражения, у которого есть тело, параметры и какой-то возврат. Функции могут сделать ваш код простым. Всегда здорово, когда вы можете разложить программу на маленькие, понятные и понятные части. Чтобы сделать ваш код более читабельным, выбирайте подходящие имена для своих функций. Помните, что набор кратких функций всегда лучше, чем одна большая функция, которая делает практически все. И не забывайте об идиомах.
Last updated