HTML Diff
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