1. Основы Kotlin. Простые функции

Что такое функция

Функцией в программировании называется законченный участок программы, решающий определённую задачу — обычно это часть большой задачи, которую решает программа в целом, хотя в простых случаях написание программы сводится к написанию одной функции. Как и у функции в математическом смысле, у функции в программировании есть входы (параметры), выход (результат) и определение, указывающее, как рассчитывается значение выхода по заданным значениям входов.

Определение простых функций на Котлине мало отличается от определения математических функций. Рассмотрим для примера математическую функцию sqr(x) = x2. На Котлине она будет записана так:

fun sqr(x: Int) = x * x
// или
fun sqr(x: Double) = x * x

В этом определении fun является ключевым словом, с которого начинается определение любой функции в Котлине;fun является сокращением от function — функция. sqr — это имя функции, x — параметр функции, = x * x — телофункции, определяющее, как следует вычислять её результат. Имя функции вместе с её параметрами и ключевым словом fun называется её заголовком.

Поскольку операция вычисления квадрата числа в Котлине отсутствует, результат вычисляется как произведение x * x. В Котлине присутствуют ещё ряд стандартных операций, перечислим некоторые из них:

  • + сложение;
  • — вычитание;
  • * умножение;
  • / деление;
  • % остаток от деления;
  • () круглые скобки для повышения приоритета операций.

Строчка, начинающаяся с символов //, является так называемым комментарием — он предназначен для лучшего понимания текста программы человеком и никак не влияет на поведение функции или программы. В Котлине возможны также скобочные комментарии, например:

/*
 Здесь будет длинная и сложная функция
 с несколькими параметрами
*/

// Скобочный комментарий начинается с символов /* и заканчивается символами */

Типы параметров / результата функций

Нотация : Int или : Double задаёт так называемый тип параметра x и требует пояснения. Тип в программировании подобен области допустимых значений в математике; математически, запись x: Int близка к записи x ∈ Z, а x: Double соответственно x ∈ R. Присутствие в определении функции типов параметров в Котлине обязательно; наличие типов позволяет функции «понять», для каких входов она применима, а для каких её использование является ошибкой.

Заметим, что тип имеется не только у параметров функции, но и у её результата. Полная запись функции возведения в квадрат в Котлине (для целого параметра) выглядит следующим образом:

fun sqr(x: Int): Int = x * x

Здесь нотация : Int перед знаком равенства задаёт тип результата функции. В Котлине в некоторых случаях необязательно записывать тип результата функции явно, поскольку функция сама может вывести этот тип, зная типы своих параметров. В данном случае известно, что произведение целого числа на целое также даст целое число, что позволяет использовать сокращённую форму записи без указания типа результата.

В Котлине определяется некоторое количество стандартных типов; помимо них, программист имеет право определять свои типы, используя так называемые классы (о них речь пойдёт позже). На первых порах нам потребуются следующие стандартные типы:

  • Int — целое число в диапазоне от -231 до 231-1;
  • Double — вещественное число в диапазоне (примерно) от -1.7 * 10308 до 1.7 * 10308, имеющее точность в (примерно) 15 десятичных цифр;
  • Boolean — так называемый логический или булевский тип с ровно двумя возможными значениями — true и false;
  • Char — символ (одиночный), например Z или Я; значением может являться любой символ, присутствующий в таблице «Unicode», с кодом от 0 до 216-1;
  • String — строка, состоящая из любого количества (в том числе из нуля) одиночных символов.

Целые и вещественные числа устроены по-разному. Например, целые числа сохраняются в памяти компьютера точно, а вещественные числа — приближённо. Некоторые операции и функции работают по-разному с целыми и вещественными числами. Например, по правилам Котлина 5 / 2 даёт 2 (деление целых чисел), но 5.0 / 2 (или 5 / 2.0) даёт 2.5 (деление вещественных чисел).

Имена

В приведённых примерах sqr являлось именем функции, а x — именем её параметра. По правилам языка Котлин, любое имя обязано начинаться с буквы или символа _ и может состоять из букв, цифр и символа _. Следует помнить, что Котлин различает строчные и прописные буквы; рекомендуется всегда начинать имена параметров и функций со строчной буквы, а имена типов — с прописной буквы. Имя, состоящее из нескольких слов, обычно записывается в так называемой camel case нотации, например bigNumber. Не рекомендуется:

  • использование букв не из латинского алфавита, например имя;
  • использование символа _ и цифр в именах, например flag_123;
  • использование транслитерации в именах, например dlina.

Литералы

Литералами в программировании называются константы, записываемые прямо в тексте программы и не имеющие отдельных имён. У любого литерала имеется тип, определяемый по его записи. Примеры литералов в Котлине:

  • -7, 0, 42 — литералы типа Int;
  • 0.0, 3.14 или 6.67e-11 — литералы типа Double, обязаны иметь как целую, так и дробную часть, запись с символом e означает 6.67 * 10-11;
  • true или false — литералы типа Boolean
  • ‘Z’ — литерал типа Char, необходимо использовать простые одинарные кавычки;
  • «name» — литерал типа String, необходимо использовать простые двойные кавычки.

Ещё раз повторим, что Int и Double — два принципиально разных типа, а значит, 3 и 3.0 — два принципиально разных числовых литерала. В частности, деление целого числа на 3 будет происходить нацело и даст целый результат, а деление целого числа на 3.0 даёт уже вещественный результат.

Комментарии: 2
  1. vladis85

    Примеры с квадратными уровнениями отталкивают от изучения. как буд то программирование == математика

  2. azalia.azatovna@mail.ru

    разве не sqr(x)= x^1/2 ?

Добавить комментарий