0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: функции, методы, scala</p>
1
<p>Теги: функции, методы, scala</p>
2
<p>В языке программирования<strong>Scala</strong>функция объявляется посредством ключевого слова<strong>def</strong>. Рассмотрим пример ее объявления и применения.</p>
2
<p>В языке программирования<strong>Scala</strong>функция объявляется посредством ключевого слова<strong>def</strong>. Рассмотрим пример ее объявления и применения.</p>
3
<p>А вот как это выглядит на языке Java:</p>
3
<p>А вот как это выглядит на языке Java:</p>
4
<p>Из примера видно, что что указание типа и использование точки с запятой не обязательны. Кроме того, не обязательны и фигурные скобки вокруг единственного выражения, впрочем, как и слово<strong>return</strong>. Мало того, его применение считают плохой практикой. Также стоит сказать, что из функции осуществляется возврат значения последней выполненной команды.</p>
4
<p>Из примера видно, что что указание типа и использование точки с запятой не обязательны. Кроме того, не обязательны и фигурные скобки вокруг единственного выражения, впрочем, как и слово<strong>return</strong>. Мало того, его применение считают плохой практикой. Также стоит сказать, что из функции осуществляется возврат значения последней выполненной команды.</p>
5
<p>Но вообще, важно упомянуть, что функция тоже является объектом. Каждая функция в Scala является экземпляром класса<strong>Function</strong>, у которого присутствует метод<strong>apply</strong>. Именно поэтому можно выполнить запись таким образом (на место аргумента функции ставится знак подчеркивания):</p>
5
<p>Но вообще, важно упомянуть, что функция тоже является объектом. Каждая функция в Scala является экземпляром класса<strong>Function</strong>, у которого присутствует метод<strong>apply</strong>. Именно поэтому можно выполнить запись таким образом (на место аргумента функции ставится знак подчеркивания):</p>
6
<p>При этом вызов метода<strong>apply</strong>следует подразумевать по дефолту, так как внешне применение функций выглядит так же, как и в языке Java:</p>
6
<p>При этом вызов метода<strong>apply</strong>следует подразумевать по дефолту, так как внешне применение функций выглядит так же, как и в языке Java:</p>
7
<p>По сути, все 4 вызова функции являются идентичными. При этом представление функций в качестве объектов позволяет оперировать с этими функциями, как с прочими объектами: передавать в виде аргументов, возвращать из других функций, расширять вспомогательными методами и т. п., что дает возможность языку программирования Scala полноценным образом поддерживать парадигму функционального программирования.</p>
7
<p>По сути, все 4 вызова функции являются идентичными. При этом представление функций в качестве объектов позволяет оперировать с этими функциями, как с прочими объектами: передавать в виде аргументов, возвращать из других функций, расширять вспомогательными методами и т. п., что дает возможность языку программирования Scala полноценным образом поддерживать парадигму функционального программирования.</p>
8
<h2>Анонимные функции</h2>
8
<h2>Анонимные функции</h2>
9
<p>Кроме вышесказанного, существуют и анонимные функции (так называемые лямбда-функции). Объявляются они следующим образом:</p>
9
<p>Кроме вышесказанного, существуют и анонимные функции (так называемые лямбда-функции). Объявляются они следующим образом:</p>
10
<p>В коде выше мы выполняем объявление анонимной функции, принимающей один целочисленный аргумент с присваиванием переменной<em><strong>f</strong></em>. Далее<strong><em>f</em></strong>уже применяется как обычная функция.</p>
10
<p>В коде выше мы выполняем объявление анонимной функции, принимающей один целочисленный аргумент с присваиванием переменной<em><strong>f</strong></em>. Далее<strong><em>f</em></strong>уже применяется как обычная функция.</p>
11
<p><em>По материалам https://tproger.ru/articles/scala-tutorial-for-beginners/.</em></p>
11
<p><em>По материалам https://tproger.ru/articles/scala-tutorial-for-beginners/.</em></p>
12
12