0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В Go, как и в других современных языках программирования, можно создавать анонимные функции - функции без имени. Они объявляются прямо на месте и часто используются как вспомогательные: для краткости, конфигурации поведения или передачи логики в другие функции.</p>
1
<p>В Go, как и в других современных языках программирования, можно создавать анонимные функции - функции без имени. Они объявляются прямо на месте и часто используются как вспомогательные: для краткости, конфигурации поведения или передачи логики в другие функции.</p>
2
<p>Эта конструкция определяет функцию, но не вызывает её. Чтобы вызвать такую функцию сразу, нужно добавить круглые скобки:</p>
2
<p>Эта конструкция определяет функцию, но не вызывает её. Чтобы вызвать такую функцию сразу, нужно добавить круглые скобки:</p>
3
<p>Такая запись называется немедленным вызовом анонимной функции (IIFE - immediately invoked function expression).</p>
3
<p>Такая запись называется немедленным вызовом анонимной функции (IIFE - immediately invoked function expression).</p>
4
<h2>Захват внешних переменных (замыкание)</h2>
4
<h2>Захват внешних переменных (замыкание)</h2>
5
<p>Анонимные функции могут использовать переменные, определённые вне их тела:</p>
5
<p>Анонимные функции могут использовать переменные, определённые вне их тела:</p>
6
<p>Функция exclaim() получила доступ к переменной suffix, даже не принимая её как параметр. Это называется замыканием.</p>
6
<p>Функция exclaim() получила доступ к переменной suffix, даже не принимая её как параметр. Это называется замыканием.</p>
7
<h2>Пример на будущее: сортировка с анонимной функцией</h2>
7
<h2>Пример на будущее: сортировка с анонимной функцией</h2>
8
<p>Мы пока не изучали коллекции, но в будущем вы сможете использовать анонимные функции для различных обобщенных задач, таких как сортировка:</p>
8
<p>Мы пока не изучали коллекции, но в будущем вы сможете использовать анонимные функции для различных обобщенных задач, таких как сортировка:</p>
9
<p>Здесь sort.Slice() использует анонимную функцию-компаратор, чтобы определить порядок элементов. Скоро вы узнаете, что такое срезы и как с ними работать.</p>
9
<p>Здесь sort.Slice() использует анонимную функцию-компаратор, чтобы определить порядок элементов. Скоро вы узнаете, что такое срезы и как с ними работать.</p>
10
<h2>Функции, возвращающие другие функции</h2>
10
<h2>Функции, возвращающие другие функции</h2>
11
<p>В Go функция может возвращать другую функцию. Это часто используется для создания замыканий - функций, которые "запоминают" своё окружение.</p>
11
<p>В Go функция может возвращать другую функцию. Это часто используется для создания замыканий - функций, которые "запоминают" своё окружение.</p>
12
12